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