gpt4 book ai didi

mongodb - 如何在 mongodb 中重命名嵌套键

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

我想重命名以在 mongodb 中重命名我的字典键。

通常它是这样工作的 db.update({'_id':id},{$rename:{'oldfieldname':newfieldname}})

我的文档结构是这样的

{
'data':'.....',
'field':{'1':{'data':....},'2':{'data'...}},
'more_data':'....',
}

如果我想设置字段 1 中的新字段 db.update({'_id':id},{$set:{'field.0.1.name':'peter'}})

第二个字段是'field'.1.2.name'

我认为重命名应该是相似的,但它不是......(比如 $rename:{'field'.0.1': 2}

最佳答案

这是一种在数据库中重命名键的灵活方法

给定这样的文档结构...

{
"_id": ObjectId("4ee5e9079b14f74ef14ddd2f"),
"code": "130.4",
"description": "4'' Socket Plug",
"technicalData": {
"Drawing No": "50",
"length": "200mm",
"diameter: "20mm"
},
}

我想遍历所有文档并将 technicalData["Drawing No"] 重命名为 technicalData["Drawing Number"]

在(优秀的)RockMongo 中的执行面板中运行以下 javascript

function remap(x){
dNo = x.technicalData["Drawing No"];
db.products.update({"_id":x._id}, {
$set: {"technicalData.Drawing Number" : dNo},
$unset: {"technicalData.Drawing No":1}
});
}

db.products.find({"technicalData.Drawing No":{$ne:null}}).forEach(remap);

代码也将在 mongo shell 中运行

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

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