gpt4 book ai didi

mongodb - 如何根据 MongoDB 中的另一个集合更新一个集合?

转载 作者:IT老高 更新时间:2023-10-28 13:11:31 26 4
gpt4 key购买 nike

现在我得到两个集合:coll01coll02

而coll01的结构是这样的:

{
id: 01,
name: "xxx",
age: 30
}

coll02的结构是这样的:

{
id: 01,
name: "XYZ"
gender: "male"
}

两个集合中的两个 id 字段都是索引。并且这两个集合中的文档数量是相同的。

而我想在传统 SQL 中做的是:

update coll01, coll02
set coll01.name = coll02.name
where coll01.id = coll02.id

最佳答案

Mongodb 不是关系型数据库,不支持连接。所以,你应该想一想,你真的需要 mongodb 吗?

更新解决方案:您可以在循环中从coll01更新每个文档:

db.coll01.find().forEach(function (doc1) {
var doc2 = db.coll02.findOne({ id: doc1.id }, { name: 1 });
if (doc2 != null) {
doc1.name = doc2.name;
db.coll01.save(doc1);
}
});

coll02 集合中id 字段的索引将减少循环内的find() 操作执行时间。另外,请参阅服务器端 JavaScript 执行:Running .js files via a mongo shell Instance on the Server

关于mongodb - 如何根据 MongoDB 中的另一个集合更新一个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19822871/

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