При использовании оператора $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 почему то не затрагиваются. Ошибок никаких нет. Как быть? В цикле изменять все?