我想通过调用CouchDB查询特定文档的列表。
使用SQL,我会做类似的事情
SELECT * FROM database.table WHERE database.table.id IN (2,4,56);
在CouchDB中按_id一个字段或另一个字段执行此操作的诀窍是什么?
_id
您需要使用viewskeys查询参数来获取具有指定集中键的记录。
keys
function(doc){ emit(doc.table.id, null); }
接着
GET /db/_design/ddoc_name/_view/by_table_id?keys=[2,4,56]
要同时检索文档内容,只需将include_docs=True查询参数添加到您的请求中。
include_docs=True
UPD :也许您可能有兴趣通过此参考ID(2,4,56)来检索文档。默认情况下,CouchDB视图使用它们所属的文档“映射”发出的密钥。要调整此行为,您可以使用链接文档技巧:
function(doc){ emit(doc.table.id, {'_id': doc.table.id}); }
现在要求
GET /db/_design/ddoc_name/_view/by_table_id?keys=[2,4,56]&include_docs=True
将返回行id字段点记录保存2,4和56键和doc一个包含引用文档内容。
id
2
4
56
doc