有人可以告诉我如何更新数组中的多个元素吗? 我有类似的对象:
{
_id: 1,
name: 'x',
someArray: [
{'a': 1},
{'a': 1, 'b': 2},
{'a': 2}
]
}
我想更新 someArray其中'a'== 1 的所有元素。 我试图通过命令
db.collection.update(
{_id: 1, 'somaArray.a': 1},
{$set: {'someArray.$.c': 3}},
{multi: true}
)
但是此命令仅更新了someArray中的一个元素。第二个未更新。结果似乎是:
{
_id: 1,
name: 'x',
someArray: [
{'a': 1, 'c': 3},
{'a': 1, 'b': 2},
{'a': 2}
]
}
如何实现所有符合条件的元素的更新? 谢谢。
答案 0 :(得分:1)
请尝试以下操作:(Read)
{
"_id" : 1,
"name" : "x",
"someArray" : [
{
"a" : 1,
"c" : 3
},
{
"a" : 1,
"b" : 2,
"c" : 3
},
{
"a" : 2
}
]
}
结果响应如下:
{{1}}
答案 1 :(得分:0)
我认为这个问题与您的问题类似