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