gpt4 book ai didi

MongoDB:映射集合中的关系

转载 作者:可可西里 更新时间:2023-11-01 09:44:24 26 4
gpt4 key购买 nike

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

我是 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() 进行迭代并将每个结果从“成员”添加到“最近”。但是,由于查询是异步的,我无法将其与返回所有文档的回调一起使用。

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

最佳答案

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()

关于MongoDB:映射集合中的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23983940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com