我认为我的查询有一个简单的语法问题,但从我所看到的,它与Mongo文档相匹配。无论是那个还是我一直在看它,我看不出那么明显。请让它变得简单。这就是我所拥有的:
db.collection.update(
{_id: myId},
{ $set: { 'data.$[elem].val': newData.newVal },
{ arrayFilters: {[ { $or: [ { 'elem.val' : 'hello' }, { 'elem.val2': 'there' } ] } ]}
)
基本上,我想更新数据数组中特定元素的val属性如果满足下列条件之一:elem.val1 === 'hello'
或elem.val2 === 'there'
答案 0 :(得分:1)
{
将其更改为:
arrayFilters:
db.collection.update(
{_id: myId},
{ $set: { 'data.$[elem].val': newData.newVal },
{ arrayFilters: [ { $or: [ { 'elem.val' : 'hello' }, { 'elem.val2': 'there'
} ] } ]}
)