ms-dred
@ms-dred
Вечно что то не то и что то не так...

Как обновить поле в массиве объектов в MongoDB?

При использовании оператора $in для массива объектов, он почему то обновляет только первый объект.
Структура документа:
{
    _id: 'ID document',
    comments: [{
        _id: ObjectId("597cea075b116f0e9e2cca55"),
        closed: false,
        text: "string"
    }, {
        _id: ObjectId("597ce96f5b116f0e9e2cca54"),
        closed: false,
        text: "string"
    }]
}


В запрос передаю массив идентификаторов ['597cea075b116f0e9e2cca55', '597ce96f5b116f0e9e2cca54']
Вот сам запрос
Posts
    .update({
        'comments._id': {
            $in: commentsIds
        }
    },{
        $set: {
            'comments.$.closed': true
        }    
    }, (e) => {
        console.log(e);
        process.exit();
});


При такой запросе берется первый ID из массива и изменяется поле comments.closed, другие IDs почему то не затрагиваются. Ошибок никаких нет. Как быть? В цикле изменять все?
  • Вопрос задан
  • 348 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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