我知道您可以传递键或范围来返回 CouchDB 中的记录,但我想做这样的事情。查找具有 X 值的 X 记录。
例如,在常规 SQL 中,假设我想返回 ID 为 5、7、29、102 的记录。我会做这样的事情:
SELECT * FROM sometable WHERE id = 5 OR id = 7 or id = 29 or id = 102
是否可以在 CouchDB 中执行此操作,我将我想在键数组中找到的所有值都扔进去,然后 CouchDB 搜索所有可能存在于 “键参数”中的记录em>?
最佳答案
你可以做一个 POST as documented on CouchDB wiki .您在请求正文中传递 key 列表。
{"keys": ["key1", "key2", ...]}
缺点是 POST 请求不会被浏览器缓存。
或者,您可以使用带有 keys
参数的 GET 获得相同的响应。例如,您可以使用以下方式查询 View _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
在每次文档更新时都会发生变化。有时,您可以通过仅使用所需文档定义自己的 View 来解决此问题。
关于database - 使用 CouchDB 的复合键,查找多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164686/