gpt4 book ai didi

MongoDB - 如何从嵌套数组中的元素中删除字段?

转载 作者:行者123 更新时间:2023-12-04 01:32:33 34 4
gpt4 key购买 nike

我的文档具有以下结构:

{
"Name": "Test",
"FieldsCollection": [{
"GroupName": "Group",
"Fields": [{
"FieldName": "ABC",
"Fields": {
"item1": "value1",
"item2": "value2"
}
}]
}]
}

我需要将其更改为:

{
"Name": "Test",
"FieldsCollection": [{
"GroupName": "Group",
"Fields": [{
"FieldName": "ABC",
"item1": "value1",
"item2": "value2"
}]
}]
}

假设 "item1": "value1","item2": "value2" 的值对于我的集合中的所有文档都是恒定的,我想我可以删除 "FieldsCollection.Fields.Fields" 并添加 "item1": "value1","item2": "value2"

我尝试了以下查询:

db.getCollection('Devices').update(
{"FieldsCollection.Fields.FieldName":"ABC"},
{$unset: {"FieldsCollection.Fields.Fields":1}},
{multi:true}
)

但是没有用。

我可以使用什么查询来执行此更改?

最佳答案

使用位置 $[all] (第一级)和位置 [<identifier>] 3.6中的(二级)

类似

db.getCollection('Devices').update(
{"FieldsCollection.Fields.FieldName":"ABC"},
{$unset: {"FieldsCollection.$[].Fields.$[f].Fields":1},
$set:{"FieldsCollection.$[].Fields.$[f].item1":"value1",
"FieldsCollection.$[].Fields.$[f].item2":"value2"}
},
{arrayFilters: [{ "f.FieldName":"ABC"} ],multi:true }
)

关于MongoDB - 如何从嵌套数组中的元素中删除字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51285207/

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