База данных Mongo обновляет несколько элементов в массиве, если идентификатор совпадает

#mongodb #multidimensional-array #mongodb-query

Вопрос:

У меня есть следующая коллекция strutcure

 "demo" : [
 "0":[
    "name":[
        "0":[
          "id":"123"
          "value" : "abc"
        ]
     ]
  ]
 "1":[
    "name":[
        "0":[
          "id":"456"
          "value" : "def"
        ]
     ]
  ]
"2":[
    "name":[
        "0":[
          "id":"123"
          "value" : "abc"
        ]
     ]
  ]
]
 

Я хочу обновить значение в нем, где id = 123.

Я использовал приведенный ниже запрос для обновления, но он обновляет только первый массив, а не все, где идентификатор совпадает

 .updateMany({
   "demo.name.id": {
      "$eq": "123"
    }
 },
 {
   $set": {
     "demo.$.name.0.value": "updated name"
   }
 },
 

Комментарии:

1.используйте позиционные фильтры $<identifier> массива