我的mongo更新查询使用标识符有什么问题

时间:2018-01-19 22:08:40

标签: mongodb

我认为我的查询有一个简单的语法问题,但从我所看到的,它与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'

1 个答案:

答案 0 :(得分:1)

{将其更改为:

后,您还需要额外arrayFilters:
db.collection.update(
   {_id: myId},
   { $set: { 'data.$[elem].val': newData.newVal },
   { arrayFilters: [ { $or: [ { 'elem.val' : 'hello' }, { 'elem.val2': 'there' 
  } ] } ]}
)