@jedifa

Как обновить значение в массиве Mongodb?

Подскажите пожалуйста, в базе данных mongodb есть поле answers которое является массивом, как я могу инкрементировать значение likes в объекте массива answer и сохранить это в базе?
_id:61016b11f857db0f456ee992
views:0
answers: [
{answer: "answer", username: "username", likes: 0}
]
question:
"question"
tags:"tag"
description:"descr"
owner:"61013f32532a47ffd53721bf"
__v:0


Я пробовал делать вот так:
answers.map(item => item.likes + 1);
 Model.save()

Но не получилось
  • Вопрос задан
  • 356 просмотров
Пригласить эксперта
Ответы на вопрос 2
YuriyVorobyov1333
@YuriyVorobyov1333
Software Developer
Вы должны использовать $set и $inc
Получится что-то вроде:
Model.update({}, {'$set': {
    {$inc: {
      `answers.$.likes`: 1 
    }},
}});
Ответ написан
gscraft
@gscraft
Программист, философ
https://docs.mongodb.com/drivers/node/fundamentals... — есть доходчивый пример, нужно запросить искомый элемент { "answers.username": "username" } (искомый элемент массива должен идентифицироваться однозначно, разумеется), но в отличие от примера использовать инкремент https://docs.mongodb.com/manual/reference/operator...$set: { $inc: { likes: 1 } }
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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