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

Views 具有多个键格式的CouchDB查询视图,views,key,couchdb,Views,Key,Couchdb,在使用多个键时,让couchdb视图返回正确的文档时遇到问题 这很好,返回匹配的文档: 得到 返回视图中的所有文档,无论是否匹配: 得到 我通常很擅长寻找我的答案。但是,CouchDB文档非常清楚使用多个键的格式。我见过一些人使用?keys=[123123],我也见过?keys=“abc”,“abc” 如果有人能够使用GET方法对CouchDB的多个密钥查询的“正确”格式和编码提供任何澄清,我将不胜感激。要从视图中获取多个密钥,您需要执行post请求并在请求正文中提交密钥。您的HTTP请求将如下

在使用多个键时,让couchdb视图返回正确的文档时遇到问题

这很好,返回匹配的文档:

得到

返回视图中的所有文档,无论是否匹配:

得到

我通常很擅长寻找我的答案。但是,CouchDB文档非常清楚使用多个键的格式。我见过一些人使用?keys=[123123],我也见过?keys=“abc”,“abc”


如果有人能够使用GET方法对CouchDB的多个密钥查询的“正确”格式和编码提供任何澄清,我将不胜感激。

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

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

{
   "keys" : [
      "abc",
      "123"
   ]
}

不是说它是正确的,但实际上也可以通过查询字符串来实现。不应对包含方括号的数组进行编码。例如,这对我很有用:

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

function(doc){
    {
        if([doc.key1, doc.key2])
            emit([doc.key1, doc.thingYouWantToKnow]);
    }
}
在查询字符串的末尾

?key=["key1Value", "key2Value"]

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

非常感谢你。成功了。CouchDB文档的措辞有时可能会模棱两可。它没有文档化。是否可以使用它,或者我应该选择POST请求。