我需要通过一堆id来获取couchdb文档。是否有一个请求/ API来执行此操作?我不想创建一个视图(id,docs),然后通过键进行查找。当ID B树已经存在时
u5i3ibmn1#
您应该使用这里记录的批量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
wnavrhmk2#
如果要获取一系列文档,也可以像在视图中一样使用startkey_docid和limit参数。您所做的是对URL发出GET请求,如http://127.0.0.1:5984/demodb/_all_docs?startkey_docid="docId1"&limit=5一旦你有了你的结果集,你就可以使用最后返回的结果作为下一个startkey,然后再次运行请求。这样做的好处是可以跳过视图索引过程(对于大型数据库来说,这可能是一个麻烦)。
startkey_docid
limit
http://127.0.0.1:5984/demodb/_all_docs?startkey_docid="docId1"&limit=5
ddhy6vgd3#
在CouchDB API中记录,在这里。如果你使用python-couchdb库,你可以用途:_, _, response = <your_db>.resource.post_json('_bulk_get', {'docs': [{'id': '<1st_doc_id>'}, {'id': '<2nd_doc_id>'}]})您的结果将以response['results']为单位。
python-couchdb
_, _, response = <your_db>.resource.post_json('_bulk_get', {'docs': [{'id': '<1st_doc_id>'}, {'id': '<2nd_doc_id>'}]})
response['results']
3条答案
按热度按时间u5i3ibmn1#
您应该使用这里记录的批量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
wnavrhmk2#
如果要获取一系列文档,也可以像在视图中一样使用
startkey_docid
和limit
参数。您所做的是对URL发出GET请求,如
http://127.0.0.1:5984/demodb/_all_docs?startkey_docid="docId1"&limit=5
一旦你有了你的结果集,你就可以使用最后返回的结果作为下一个startkey,然后再次运行请求。这样做的好处是可以跳过视图索引过程(对于大型数据库来说,这可能是一个麻烦)。
ddhy6vgd3#
在CouchDB API中记录,在这里。
如果你使用
python-couchdb
库,你可以用途:_, _, response = <your_db>.resource.post_json('_bulk_get', {'docs': [{'id': '<1st_doc_id>'}, {'id': '<2nd_doc_id>'}]})
您的结果将以
response['results']
为单位。