Join CouchDB中的三重连接?

Join CouchDB中的三重连接?,join,couchdb,Join,Couchdb,我有三类文件: 问题: 用户-包含一个源字段 答案-包含相应的问题ID和用户ID 每个问题由多个用户回答,每个用户只回答一次问题。我想找出source1用户回答的每个问题的答案有多少。我认为,你越接近你想要的答案,你就会得到以下答案(使用) 假设你有 { "_id": "user1", "source": "source1" }, { "_id": "user2", "source": "source2" }, { "_id": "answer1", "question": "question1

我有三类文件:

  • 问题:
  • 用户-包含一个源字段
  • 答案-包含相应的问题ID和用户ID

  • 每个问题由多个用户回答,每个用户只回答一次问题。我想找出source1用户回答的每个问题的答案有多少。

    我认为,你越接近你想要的答案,你就会得到以下答案(使用)

    假设你有

    { "_id": "user1", "source": "source1" },
    { "_id": "user2", "source": "source2" },
    { "_id": "answer1", "question": "question1", "user": "user1" },
    { "_id": "answer2", "question": "question1", "user": "user2" }
    
    然后定义以下视图

    function(doc) {
      if (doc.question) {
        emit(doc.question, {_id: doc.user});
      }
    }
    
    然后,如果使用key=“question1”和include\u docs=true查询该视图 它将向您显示问题1的所有答案以及所有用户信息,您只需选择带有source=“source1”的答案即可

    例如,使用以前的值,它将返回:

    {"total_rows":2,"offset":0,"rows":[
    {"id":"answer1","key":"question1","value":{"_id":"user1"},"doc":{"_id":"user1","_rev":"1-c99dc8987841c25c72081a84252793a0","source":"source1"}},
    {"id":"answer2","key":"question1","value":{"_id":"user2"},"doc":{"_id":"user2","_rev":"1-0d44e9f4d3806fb932b1b4fcb1e1507b","source":"source2"}}
    ]}
    

    但是,在视图的映射功能中,您不能使用来自其他文档的信息。

    您无法在couchdb中实现这一点,需要使用第三方模块

    例如:

    sites.google.com/site/nosqldatajoiner/


    或者谷歌nosql datajoiner

    你不能。。。您可以使用futon显示您的视图,然后按“原始视图”图标(在右上角),并将&include_docs=true添加到url