【发布时间】:2023-04-01 20:26:01
【问题描述】:
我需要通过一堆 id 来获取 couchdb 文档。有请求/API 吗? 我不想创建一个视图(id,docs),然后通过键进行查找。 当 id b-tree 已经存在时
【问题讨论】:
标签: couchdb couchdb-futon
我需要通过一堆 id 来获取 couchdb 文档。有请求/API 吗? 我不想创建一个视图(id,docs),然后通过键进行查找。 当 id b-tree 已经存在时
【问题讨论】:
标签: couchdb couchdb-futon
记录在 CouchDB API 中,here。
如果您使用的是 python-couchdb 库,您可以使用:
_, _, response = <your_db>.resource.post_json('_bulk_get', {'docs': [{'id': '<1st_doc_id>'}, {'id': '<2nd_doc_id>'}]})
您的结果将位于response['results']。
【讨论】:
如果您想获取一系列文档,您还可以像在视图中一样使用startkey_docid 和limit 参数。
您所做的是对类似 URL 的 GET 请求
http://127.0.0.1:5984/demodb/_all_docs?startkey_docid="docId1"&limit=5
获得一组结果后,您可以使用最后返回的结果作为下一个 startkey 并再次运行请求。这样做的好处是可以跳过视图索引过程(这对于大型数据库来说可能会很麻烦)。
【讨论】:
您应该使用记录在 here 中的批量 API。
它可能如下所示。
demodb)_all_docs 作为视图rev),请务必通过include_docs=true
curl -d '{"keys":["docId1","docId2","docId3"]}' -X POST http://127.0.0.1:5984/demodb/_all_docs?include_docs=true
【讨论】: