使用futon map程序将couchdb中的两个不同文档连接起来

Join two different documents in couchdb using futon map program?

本文关键字:两个 起来 连接 文档 程序 map futon couchdb 使用      更新时间:2023-09-26

我有两个文档,如下所示:

{
   "_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