我不知道标题的描述性如何,所以请随意修改标题以便更好地理解。
我对MongoDB很新,到目前为止事情进展顺利。但是我遇到了一个非常基本的问题,我需要将其他集合中的文档/映射到其他集合中的文档。
简而言之,我有以下结构:
收集"会员" :
{
"_id": "abc",
"name": "Mr. Abc"
}
{
"_id": "def",
"name": "Mrs. Def"
}
收藏"最近" :
[{
"_id": "123",
"member_id": "abc",
"action": "joined"
},
"_id": "456",
"member_id": "def",
"action": "left"
}]
现在我想迭代"最近"并将所有成员映射为对象"成员"进入文件。
我使用monk(https://github.com/LearnBoost/monk)作为MongoDB的API,但无法找到任何解决方案。
到目前为止,我尝试使用.forEach()进行迭代,并添加来自" member"的所有结果。最近"。但是,由于查询是异步的,我无法使用我的回调来返回所有文档。
我读过有关游标等的内容,但无法找到任何可行的解决方案。所以我问你。
答案 0 :(得分:2)
Mongo是非关系的,所以没有联接
2个查询:
var recent = db.recent.findOne({"id" : "123"})
db.member.find( {"id" : {$in : recent.member_id }});
然后您可以使用http://blog.modulus.io/getting-started-with-mongoose
之类的ORM基于ForEach的方法讨论了如前所述加载客户端的问题:
db.recent.find().forEach(
function (rece) {
rece.member = db.member.find( {"id" : {$in : rece.member_id }});
db.recentMembers.insert(rece);
}
);
db.recentMembers.find().pretty()