更新时间: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 }
)