Задать вопрос
@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);
  });
  • Вопрос задан
  • 195 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 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"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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