database - 使用 CouchDB 的复合键,查找多条记录

标签 database search nosql couchdb composite-key

我知道您可以传递键或范围来返回 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 搜索所有可能存在于 “键参数”?

最佳答案

你可以做一个 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/

相关文章:

android - 在我的下一个 Android 应用程序更新中用新的数据库版本覆盖现有的 Sqlite 数据库

algorithm - Knn搜索大数据?

c++ - 在 BST 中搜索节点时出现段错误

asp.net-mvc - Asp.net MVC + NoSQL 数据库

java - Spring-Data Couchbase - 如何将 TTL 设置为文档?

mysql - 在主键/外键上连接两个表时 MySql 查询速度非常慢

r - 如何在 R 中获得组合向量?

sql - "select * into table"是否可以将数据插入现有表

ruby-on-rails-3 - Ruby on Rails - 在 Wice 网格中显示高级搜索结果

azure - 是否可以对 CosmosDB 集合使用继承?