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

Как правильно обновить данные в MongoDB?

Здравствуйте. Данные хранятся в таком виде
{
 id: //,
 list: ['one', 'two', 'three']
}

Мне приходит массив ['four', 'five']. Можно ли как-то одной командой обновить данные так, чтобы в поле list было [one', 'two', 'three', 'four', 'five']?

Пока на ум приходит только такое решение: считать данные, сложить два массива, перезаписать. Работаю с MongoDB через node.js (native driver)
  • Вопрос задан
  • 259 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
YarkoDzech
@YarkoDzech
будучи трезвым, сдержи все свои пьяные обещания!
$push просто добавляет данные в массив
$addToSet добавляет с заменой

tag = ['four', 'five']
db.collection.update({searchtags: "anything"}, {$push: {tag: ['one', 'two', 'three', 'four']}})
tag = ['one', 'two', 'three', 'four', 'four', 'five']

db.collection.update({searchtags: "anything"}, {$addToSet: {tag: ['one', 'two', 'three', 'four']}})
tag = ['one', 'two', 'three', 'four', 'five']

Через точку можно пушить прямо в подмасив массива.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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