Добавить или удалить элемент во вложенном массиве в зависимости от наличия?
Структура документа
[{
answers:[{
// поля...
comments:[{
//поля...
likes:['сюда id в виде строки']
}]
}]
}]
Вопрос в следующем, нужно проверить существует ли id в многоуровневом вложенном подмасссиве likes (answers=>comments=>likes), если не существует, то добавить id, если существует то удалить. Добавляю так
.findOneAndUpdate(
{
_id: id,
},
{
$push: {
"answers.$[].comments.$[comments].likes": likes.liked,
},
},
{
arrayFilters: [
{
"comments._id": likes.comment_id,
},
],
new: true,
},
);
Источник: Stack Overflow на русском