使用' _all_docs?keys ='查询db并指定要返回的字段

时间:2016-05-17 12:06:49

标签: couchdb cloudant

我想对cloudant db进行批量查询。

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

这样做如下所示。但是,我还要返回_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"
    }
  }]
}

2 个答案:

答案 0 :(得分:2)

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

否则,您必须编写(并编制索引)您自己的视图,以发出您想要的内容。

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

答案 1 :(得分:0)

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

emit(doc._id, doc);