gpt4 book ai didi

mongodb - 重命名 mongodb 中的嵌套键

转载 作者:行者123 更新时间:2023-12-04 03:19:53 25 4
gpt4 key购买 nike

我有一个集合“用户”如下:

{
_id: "123",
"address": {
"contact1":{
"cell":"98765412345"
},
"contact2":{
"cell":"98765412346"
}
}
}

我想在所有嵌套对象 contact1、contact2 等中将字段“cell”重命名为“mobile”。

以下查询有效:
db.user.update({},{$rename:{'address.contact1.cell':'address.contact1.mobile'}})

理想情况下,我希望更新所有嵌套对象。所以我试过了
db.user.update({},{$rename:{'address.$.cell':'address.$.mobile'}})

这不起作用。我搜索了类似的问题,所有这些问题都有嵌套数组而不是映射(就像我的情况一样),我得到的答案是 $rename 不适用于嵌套数组。我想知道是否可以使用查询而不是脚本

最佳答案

db.testuser.update({},{$rename:{'address.contact1.cell':'address.contact1.mobile'}}, false, true);

false 用于 upsert:false,true 用于 multi: true。您需要 multi:true 来更新您的所有记录。当然,您必须手动通过每个不同的键。这会将 contact1 对象下的所有单元格更新为 mobile 而不是 contact2 对象下的单元格。否则,您必须编写一些脚本。

关于mongodb - 重命名 mongodb 中的嵌套键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39087976/

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