我知道你可以传递一个键或一个范围来返回CouchDB中的记录,但我想做这样的事情。找到X值的X记录。
例如,在常规SQL中,假设我想返回包含 5,7,29,102 的ID的记录。我会做这样的事情:
SELECT * FROM sometable WHERE id = 5 OR id = 7 or id = 29 or id = 102
是否可以在CouchDB中执行此操作,我在键盘数组中输入要查找的所有值,然后CouchDB搜索“key parameter”中可能存在的所有记录
答案 0 :(得分:4)
您可以执行POST as documented on CouchDB wiki。您传递了请求正文中的密钥列表。
{"keys": ["key1", "key2", ...]}
缺点是浏览器没有缓存POST请求。
或者,您可以使用带有keys
参数的GET获得相同的响应。例如,您可以使用以下内容查询视图_all_docs
/DB/_all_docs?keys=["ID1","ID2"]&include_docs=true
,正确的URL编码,变为:
/DB/_all_docs?keys=%5B%22ID1%22,%22ID2%22%5D&include_docs=true
这应该提供更好的可缓存性,但请记住,每次更新文档时_all_docs
都会发生更改。有时,您可以通过仅使用所需文档定义自己的视图来解决此问题。
答案 1 :(得分:2)
使用直视功能,这是不可能的。但是,您可以使用_list
函数来完成相同的结果。