Исключите все результаты,присутствующие в одной коллекции, из другой с помощью сопоставления, поиска и агрегирования

#mongodb #mongodb-query #nosql

Вопрос:

Как я могу исключить все результаты из коллекции базы данных на основе идентификатора текущих пользователей, которые присутствуют в коллекции A из коллекции B

 user.aggregate([
    {
      $lookup: {
        from: "views",
        localField: "_id",
        foreignField: "viewerId",
        as: "v",
      },
    },
    {
      $match: {
        $and: [
          {
            _id: {
              $ne: ObjectId('60b7b3d90e7bbb2801d9a05f'),
            },
          },
          { v: { $not: { $elemMatch: { viewerId: ObjectId('60b7b3d90e7bbb2801d9a05f') } } } },
        ],
      },
    },
  ]);
 

Текущий код дает мне результаты, даже если есть результат с идентификатором viewerId = идентификатор пользователя

Полученный Результат:

  _id: ObjectId("60b4f966072bac7e4014b3c5"),
  name: 'user',
  v: 
   [ { _id: ObjectId("60b87d2efc79ba78212de024"),
       viewerId: ObjectId("60b4f966072bac7e4014b3c5"),
       targetId: ObjectId("60b7b3d90e7bbb2801d9a05f") } ] }
 

Ожидаемый результат

 []
 

Снимок экрана коллекции БД
Коллекция поиска