Javascript 使用futon map程序在couchdb中连接两个不同的文档?
我有两份文件如下:Javascript 使用futon map程序在couchdb中连接两个不同的文档?,javascript,mapreduce,couchdb,Javascript,Mapreduce,Couchdb,我有两份文件如下: { "_id": "00315fd5428d43a19ce86ae7a273085f", "_rev": "3-031e613837bf7e9c75f8bc9f5230d921", "device_sno": "WEC343", "moving_status": true, "overall_status": true, "temperature": "-1° C", "trip_id":3 } { "_id": "1a",
{
"_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
}
现在,根据第一个doc中的trip id,我想从doc2中获取客户名称。
有人能帮我解决这个问题吗,这对我会有很大帮助………你可以使用
如果您发出一个具有{u id':XXX}的对象值,那么include_docs=true将获取id为XXX的文档,而不是经过处理以发出键/值对的文档
这意味着,如果一个文档包含其他文档的ID,它也会导致在视图中获取这些文档,如果需要的话,这些文档也会与同一个键相邻
如果您稍微更改文档的架构,并在第一个文档中包含第二个文档的\u id
字段,如下所示
{…,{“trip_id”:“要获取的文档的id”}
然后可以定义一个视图,如
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=“某些值”&include\u docs=true
这将获取链接的文档。这里需要注意的重要一点是emit中的第二个参数必须指向要获取的文档。在您的情况下,
trip\u id
必须指向第二个文档的\u id
。很抱歉,我在emit函数中犯了一个错误。你能再试一次吗?现在应该可以了。我在本地的沙发数据库上测试过。还有一个疑问…?不,你不能跨数据库加入。