Добавить или удалить элемент во вложенном массиве в зависимости от наличия?

Рейтинг: 0Ответов: 0Опубликовано: 30.03.2023

Структура документа

[{
  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,
      },
    );

Ответы

Ответов пока нет.