4

我需要通过一堆 id 来获取 couchdb 文档。是否有请求/API 来执行此操作?我不想创建一个视图(id,docs),然后通过键进行查找。当 id b-tree 已经存在时

4

3 回答 3

12

您应该使用此处记录的批量 API 。

它可能看起来像下面这样。

  • 通过 POST 将密钥作为正文的一部分传递
  • 传入数据库的名称(在下面的示例中,它是demodb
  • 在 url 中,使用_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

于 2013-08-01T22:32:31.317 回答
1

如果您想获取一系列文档,您还可以像在视图中一样使用startkey_docid和参数。limit

您所做的是对 URL 的 GET 请求,例如

http://127.0.0.1:5984/demodb/_all_docs?startkey_docid="docId1"&limit=5

获得一组结果后,您可以使用最后返回的结果作为下一个 startkey 并再次运行请求。这具有跳过视图索引过程的好处(这对于大型数据库来说可能是一件痛苦的事情)。

于 2013-08-02T09:34:33.183 回答
0

记录在 CouchDB API 中,这里

如果您正在使用该python-couchdb库,则可以使用:

_, _, response = <your_db>.resource.post_json('_bulk_get', {'docs': [{'id': '<1st_doc_id>'}, {'id': '<2nd_doc_id>'}]})

您的结果将在response['results'].

于 2018-09-14T14:44:33.180 回答