使用futon map程序将couchdb中的两个不同文档连接起来
Join two different documents in couchdb using futon map program?
我有两个文档,如下所示:
{
"_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
。
相关文章:
- JQuery合并了keyup和focusout两个函数
- 如何使用 node.js 比较两个 json 数组
- 为复选框javascript指定两个值
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 单击时切换两个图像
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 基于两个条件退出While循环
- 如何在这里将两个值最低的数字相加
- 如何将两个 JavaScript 对象与 JavaScript 连接起来
- 使用相同文件的 Html/JS/PHP 两个页面看起来不同(仅在 chrome 中)
- 将两个 JSON 对象与数组对象连接起来
- Javascript让两个父母起来(没有jQuery)
- 字符串比较-两个字符看起来相同,但具有不同的ASCII值
- 如何把两个数字加起来而不四舍五入
- 这两个JSON对象有区别吗,看起来没有,但是
- 不能将两个变量连接起来
- 有没有一种方法可以将两个或多个执行类似操作的事件组合起来使用DRY原理
- 使用futon map程序将couchdb中的两个不同文档连接起来
- 似乎不知道如何将这两个脚本结合起来运行计算器
- 使用两个输入看起来像textarea