我有两个文档,如下所示:
{
"_id": "00315fd5428d43a19ce86ae7a273085f",
"_rev": "3-031e613837bf7e9c75f8bc9f5230d921",
"device_sno": "WEC343",
"moving_status": true,
"overall_status": true,
"temperature": "-1° C",
"trip_id":3
}
{
"_id": "1a",
"_rev": "4-e876b14dcb4cfd18aba8eb36b2be33bd",
"customer_name": "praneeth",
"customer_id": 2,
"tripp_id": 3
}
现在,根据第一个文档中的行程id,我想从doc2中获得客户名称。有人能帮我解决这个问题吗?这对我很有帮助……
您可以使用couchdb链接文档来完成此操作。
如果您发出的对象值具有{'_id':XXX},则include_docs=true将获取id为XXX的文档,而不是为发出键/值对而处理的文档。
这意味着,如果一个文档包含其他文档的ID,则可能会导致这些文档也在视图中被提取,如果需要,则会与同一个键相邻。
如果您稍微更改文档的模式,并在第一个文档中包含第二个文档的_id
字段,如
{....,{"trip_id":"id of the document to fetch"}}
然后你可以定义一个类似的视图
function(doc){
emit(doc.key,{"_id":doc.trip_id});//doc.key is the key on which you want your view to be sorted.
}
现在你可以像这样查询
http://localhost:5984/db_name/_design/ddoc_name/_view/view_name?key="some-value"&include_docs=true
这将获取链接的文档。这里需要注意的重要一点是,emit中的第二个参数必须指向要获取的文档。在您的情况下,trip_id
必须指向第二个文档的_id
。