使用 '_all_docs?keys=' 查询数据库并指定要 return 的字段

Using '_all_docs?keys=' to query db and specifying which fields to return

我想对 cloudant 数据库进行批量查询。

通过提供 _id 的列表(主键),并让 db return 匹配 _id 的任何文档。

如下所示。但我也想 return _id_revfield_name。有没有办法不使用 include_docs=true 来做到这一点?

要求:

http://{db-host}/{db-name}/_all_docs?keys=["1e0a2d30d18d95b9bcc05d92c8736eab","181687d2f16debc10f9e365cc4002371"]

回复:

{
  "total_rows": 3,
  "rows": [{
    "id": "1e0a2d30d18d95b9bcc05d92c8736eab",
    "key": "1e0a2d30d18d95b9bcc05d92c8736eab",
    "value": {
      "rev": "1-a26b67f478e4f3f8fd49779a66fc7949"
    }
  }, {
    "id": "181687d2f16debc10f9e365cc4002371",
    "key": "181687d2f16debc10f9e365cc4002371",
    "value": {
      "rev": "1-7338901ca1c5c06ef81a6971aa6e8f9d"
    }
  }]
}

没有。 _all_docs 的索引不包含 field_name 数据。 使用此视图获取它的唯一方法是 include_docs.

否则你将不得不编写(和索引)你自己的视图来发出你想要的东西。

map: function(doc) {
    emit(doc._id, { _id: doc._id, _rev: doc._rev, field_name: doc.field_name });
}

使用 include_docs 或手动填充所有字段的替代方法是将文档作为视图中的值发出,如下所示:

emit(doc._id, doc);