具有多键格式的CouchDB查询视图

J. *_*oln 13 couchdb views key

我在使用多个键时获取couchdb视图以返回正确的文档时遇到问题.

这工作正常,返回匹配的文档:

获取http://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?key=abc123

返回返回视图中的所有文档,匹配与否:

获取http://example.com:5984/myDb/_design/myFilters/_view/getItemByForeignKeyId?keys=%5B%22abc123%22%5D

我通常非常擅长寻找答案.但是,CouchDB文档对使用多个密钥的格式非常清楚.我见过一些使用?keys = [123,123]而且我也见过?keys ="abc","abc".

如果有人能够使用GET方法对CouchDB的"正确"格式和多个关键查询的编码做出任何澄清,我将非常感激.

Kim*_*bel 17

要从视图中获取多个密钥,您需要执行发布请求并在请求正文中提交密钥.您的HTTP请求将如下所示:

POST /myDb/_design/myFilters/_view/getItemByForeignKeyId
Content-Type: application/json

{
   "keys" : [
      "abc",
      "123"
   ]
}
Run Code Online (Sandbox Code Playgroud)


小智 7

key=[]

在查询字符串中,在结尾?key = ["key1Value","key2Value"]

请注意,它是key = [],而不是keys = [] !!!!!!!!!


Dan*_*iel 5

并不是说它是正确的,但实际上您也可以通过查询字符串来做到这一点。数组括弧不应该被编码。例如,这对我有用:

http://localhost:5984/test/_design/artists_albums/_view/albums_by_artist?keys=[%22Super%20bad%20artist%22,%20%22Fake%20artist%201%22]