Задать вопрос
@197291

Как заменить/обновить объект в массиве?

Здравствуйте. Подскажите, есть MongoDB коллекция, документы со следующей структурой:
{
name:'Bob',
items:[{
    id:12
    name:'...',
    lastName:'..'
  },
  {
    id:13
    name:'...',
    lastName:'..'
  }]
}


Необходимо во всех документах в которых есть объект с id = 12, заменить его на другой, либо обновить определенные поля. Я использую moongoose, но можно и с нативным nodejs драйвером. Пытался таким еще способом:
Model.update({ 'items.id': id }, {$set:{
    'items.$[element]':obj,
  }}, {multi:true}, function(err, doc){
     console.log('doc', doc);
  });
  • Вопрос задан
  • 196 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Фулстек-разработчик
    16 месяцев
    Далее
  • Javascript.ru
    Курс по Node.js
    5 недель
    Далее
Пригласить эксперта
Ответы на вопрос 1
didiaFiodor
@didiaFiodor
а вы скажите ему об этом, раскройте ему глаза
На ванильном js, но логика должна как-бы та же самая быть
(currdat = "plus",
data = {name:"major",items:[{id:12,name:'extra'},
{id:13,name:'basic'}]},
function(param=12)
{return data.items[0].id==12?data.items[0].name=currdat:"not found"}()
)
//вернет "plus"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы