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

我不知道标题的描述性如何,所以请随意修改,以便更好地理解

我是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"
}]
收藏“最近的”

{
  "_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()迭代集合,向其中添加正确的文档,然后在达到限制后,执行回调函数。