3

我不知道标题的描述性如何,因此请随时修改以更好地理解。

我对 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"
}]

现在我想遍历“最近”并将所有成员作为对象“成员”映射到文档中。

我正在使用和尚(https://github.com/LearnBoost/monk)作为 MongoDB 的 API,但找不到任何解决方案。

到目前为止,我尝试使用 .forEach() 进行迭代,并将每个结果从“member”添加到“recent”。但是,由于查询是异步的,因此我无法使其与返回所有文档的回调一起使用。

我读了一些关于游标等的东西,但找不到任何可行的解决方案。所以我问你。

4

1 回答 1

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()
于 2014-06-01T20:08:43.340 回答