代码之家  ›  专栏  ›  技术社区  ›  amorfis

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

  •  2
  • amorfis  · 技术社区  · 16 年前

    来自user@couchdb.apache.org的交叉投递

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

    人:

    • 名字
    • 位置

    汽车:

    • _身份证
    • 注册号

    所以有一对多的关系。一个人可以有很多车。

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

    2 回复  |  直到 16 年前
        1
  •  2
  •   Joel Lucsy    16 年前

    除非你真的需要把一辆车连到不止一个人身上,否则我认为把一个人拥有的车和个人文档一起作为子对象存储会容易得多。这将使查询更易于编写。

        2
  •  2
  •   Community Mohan Dere    9 年前

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

    function(doc)
    {
        if (doc.type == 'car')
        {
            emit(doc.brand, {'_id' : doc.person_id});
        }
    }
    

    根据 CouchDB Wiki

    如果发出的对象值 {'_id': XXX} 然后 include_docs=true 而不是 已处理以发出密钥/值对。

    这本身不会给你薪水,但你会得到包含薪水的人事文件。

    include_docs=真 , this post about a race condition