Мангуст : Обновите вложенный массив объектов при условии

#mongodb #mongoose

#mongodb #мангуст

Вопрос:

Я пытаюсь обновить вложенный массив в документе, но я не хочу полностью удалять этот массив. Я хочу заменить объекты в массиве новыми объектами, если у них один и тот же «идентификатор».

В базе данных :

 {  "key": 1,  "foo": "bar",  "items": [  { identifier: 'bar', data: 'randomText' },  { identifier: 'bar2', data: 'randomText2' },  { identifier: 'bar3', data: 'randomText3' },  ] }  

Данные, которые я отправляю для обновления:

 {  "key": 1,  "foo": "newBar",  "items": [  { identifier: 'bar', data: 'newtext', newfield: 'randomText3' },  { identifier: 'bar2', data: 'newtext' },  ] }  

Ожидаемый результат:

 {  "key": 1,  "foo": "newBar",  "items": [  { identifier: 'bar', data: 'newtext', newfield: 'randomText3' },  { identifier: 'bar2', data: 'newtext' },  { identifier: 'bar3', data: 'randomText3' },  ] }   

Я читал в документах, что я мог бы использовать findAndUpdate() и оператор $set, но я не знаю, как выполнить это условие. И я изо всех сил пытаюсь получить доступ к вложенному массиву и сделать здесь некоторую логику..

Я также читал кое-что о опции «arrayFilters», нужно ли мне ее использовать ?

Спасибо за любую помощь !