且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

根据 MongoDB 中的属性更新嵌套数组对象

更新时间:2022-11-22 17:52:05

您需要使用 $ positional 操作符更新数组元素,使用 multi: true 选项,你可以更新多个具有相同匹配的文档

You need to use $ positional operator to update an array element and with multi: true option you can update multiple document with the same match

db.collection.update(
  { 'items': { '$elemMatch': { 'itemName': 'Name 1' }}},
  { '$set': { 'items.$.itemName': 'New Name' }},
  { 'multi': true }
)

和 mongodb 3.6 arrayFilters

and with the mongodb 3.6 arrayFilters

db.collection.update(
  { 'items': { '$elemMatch': { 'itemName': 'Name 1' }}},
  { '$set': { 'items.$[item].itemName': 'New Name' }},
  { 'arrayFilter': [{ 'item.itemName': 'Name 1' }], 'multi': true }
)