gpt4 book ai didi

MongoDb - 如何使用 $set 更新嵌套对象的多个元素?

转载 作者:IT老高 更新时间:2023-10-28 13:14:48 27 4
gpt4 key购买 nike

假设我有以下文件:

{name: 'myDoc', nestedDoc: {a: 1, b: 2, c: 3}}

我想与nestedDoc 合并一个新对象:

{b: 20, c:30, d:40}

所以结果对象是:

{name: 'myDoc', nestedDoc: {a: 1, b: 20, c: 30, d: 40}}

如何在单个查询中执行此操作?我觉得我需要多个 $set 调用,但是对象属性名称必须是唯一的。换句话说,我希望我能做到以下几点:

db.myCollection.update({name: 'myDoc', nestedDoc: {$set: {b: 20}, $set: {c: 30}, $set: {d: 40}}); 

一些额外的细节是 MongoDB 版本是 1.8.2,我使用的是 NodeJS 节点原生驱动程序。

最佳答案

您可以使用以下方法进行更新:

db.myCollection.update({
name: 'mydoc'
}, {
$set: {
'nestedDoc.b': 20,
'nestedDoc.c': 30,
'nestedDoc.d': 40
}
})

这里是关于更新命令的更多信息:

关于MongoDb - 如何使用 $set 更新嵌套对象的多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7617915/

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