2016-05-17 120 views
0

我想對cloudant db執行批量查詢。使用'_all_docs?keys ='查詢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" 
    } 
    }] 
} 
+0

你已經有了'id'和'rev'。 – OrangeDog

+0

我也想'field_name'。 – bobbyrne01

回答

2

號_all_docs的索引不包含field_name數據。 使用此視圖的唯一方法是使用include_docs

否則,你將不得不編寫(和索引)你自己的視圖,發出你想要的。

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

替代使用include_docs或手動填充所有字段是發出文檔作爲值的觀點,這樣的:

emit(doc._id, doc); 
+0

引用文檔:「不建議在視圖中發佈文檔本身,而是在請求視圖時包含文檔的主體,請使用?include_docs = true請求視圖。」 – Gnujeremie