我需要通过一堆 id 来获取 couchdb 文档。是否有请求/API 可以做到这一点? 我不想创建一个视图(id,文档),然后通过键进行查找。 当 id B 树已经存在时
您应该使用此处记录的批量 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
如果您想获取一系列文档,您还可以像在视图中一样使用
startkey_docid
和 limit
参数。
您所做的是对类似 URL 的 GET 请求
http://127.0.0.1:5984/demodb/_all_docs?startkey_docid="docId1"&limit=5
获得一组结果后,您可以使用最后返回的结果作为下一个开始键并再次运行请求。这样做的好处是跳过视图索引过程(这对于大型数据库来说可能是一件痛苦的事情)。
记录在 CouchDB API 中,此处。
如果您使用
python-couchdb
库,您可以使用:
_, _, response = <your_db>.resource.post_json('_bulk_get', {'docs': [{'id': '<1st_doc_id>'}, {'id': '<2nd_doc_id>'}]})
您的结果将在
response['results']
中。