且构网

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

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

更新时间:2022-11-22 17:03:29

您需要使用

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 }
)