MongoDB:映射集合中的关系
我不知道标题的描述性如何,所以请随意修改,以便更好地理解 我是MongoDB的新手,到目前为止一切都很顺利。但是,我遇到了一个非常基本的问题,需要将文档从其他集合连接/映射到其他集合中的文档 简言之,我有以下结构: 收藏“成员”:MongoDB:映射集合中的关系,mongodb,relationship,monk,Mongodb,Relationship,Monk,我不知道标题的描述性如何,所以请随意修改,以便更好地理解 我是MongoDB的新手,到目前为止一切都很顺利。但是,我遇到了一个非常基本的问题,需要将文档从其他集合连接/映射到其他集合中的文档 简言之,我有以下结构: 收藏“成员”: { "_id": "abc", "name": "Mr. Abc" } { "_id": "def", "name": "Mrs. Def" } [{ "_id": "123", "member_id": "abc", "action
{
"_id": "abc",
"name": "Mr. Abc"
}
{
"_id": "def",
"name": "Mrs. Def"
}
[{
"_id": "123",
"member_id": "abc",
"action": "joined"
},
"_id": "456",
"member_id": "def",
"action": "left"
}]
收藏“最近的”:
{
"_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()作为MongoDB的API,但找不到任何解决方案
到目前为止,我尝试使用.forEach()进行迭代,并将每个结果从“member”添加到“recent”。但是,由于查询是异步的,我无法使它与返回所有文档的回调一起工作
我读了一些关于游标之类的东西,但找不到任何可行的解决方案。因此,我向您询问。Mongo是非关系型的,因此没有连接 2项查询:
var recent = db.recent.findOne({"id" : "123"})
db.member.find( {"id" : {$in : recent.member_id }});
那么就由你来使用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()
但我想浏览整个db.recent,而不仅仅是findOne()。那么,我必须单独循环和处理每个文档吗?我也考虑过使用猫鼬,谢谢你指出。即使我在探索这篇文章,我发现这篇文章很有用,我也会接受你的回答,因为它背后的想法让我找到了可行的解决方案。现在,我使用findOne()迭代集合,向其中添加正确的文档,然后在达到限制后,执行回调函数。