@Modin

Как обновить объект в массиве в коллекции mongodb (php)?

Имею объект в коллекции:
{
  _id:{},
  name: 'name',
  someArray: [{
    id: 234,
    info: 'some info'
  }, {
    id: 567,
    info: 'other info'
  }]
}

Например, мне надо поменять в объекте с id 567 инфо, как это лучше всего сделать? Объект в массиве найти получается, а вот заапдейтить - нет. В кач-ве языка использую пых. Спасибо!
  • Вопрос задан
  • 405 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Quieteroks
php программист
Вариантов множество. Например обновление запросом с поиском:
$retval = $col->findAndModify(
     ["name" => "name"],
     ['$set' => ['someArray.0.info' => 'update info']],
);

Или же если обработка значительная:
$doc = $col->find(["name" => "name"]);
$doc['someArray'][0]['info'] = 'update info';
$col->save($doc);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы