在CouchDB中,如何在相关文档中获取受限于值的文档?就SQL而言,如何在联接表上创建WHERE

在CouchDB中,如何在相关文档中获取受限于值的文档?就SQL而言,如何在联接表上创建WHERE,couchdb,Couchdb,从user@couchdb.apache.org 假设CouchDB中有两种文档。人员和车辆: 人: _身份证 名字 姓 位置 薪水 汽车: _身份证 个人识别码 注册号 烙印 所以有一对多的关系。一个人可以有很多车 我可以构造地图功能,让每个人和他/她的车挨在一起。在这种情况下,键是数组[person.id,0]和[car.person\u id,1] 我不能做的是,将此视图仅限于特定品牌的车主,例如,如果我需要法拉利车主的工资。除非您真的需要将一辆车连接到多个人,否则我认为将一个人拥

从user@couchdb.apache.org

假设CouchDB中有两种文档。人员和车辆:

人:

  • _身份证
  • 名字
  • 位置
  • 薪水
汽车:

  • _身份证
  • 个人识别码
  • 注册号
  • 烙印
所以有一对多的关系。一个人可以有很多车

我可以构造地图功能,让每个人和他/她的车挨在一起。在这种情况下,键是数组[person.id,0]和[car.person\u id,1]


我不能做的是,将此视图仅限于特定品牌的车主,例如,如果我需要法拉利车主的工资。

除非您真的需要将一辆车连接到多个人,否则我认为将一个人拥有的汽车与个人文档一起存储为子对象会容易得多。这将使查询更易于编写。

您可以尝试以下方法作为映射函数:

function(doc)
{
    if (doc.type == 'car')
    {
        emit(doc.brand, {'_id' : doc.person_id});
    }
}
根据,自版本0.11起:

如果发射的对象值具有
{''u id':XXX}
然后
包含文档=true
将获取id为XXX的文档 而不是 已处理以发出键/值对

这本身不会给你工资,但你会得到包含工资的人事文档


注意:对于include_docs=true的使用,可能是相关的。

你是对的,但这不是现实生活中的问题:)我只是想知道在CouchDB中是否可以进行这种查询?