Mongodb 使用match、lookup和aggregate将一个集合中存在的所有结果从另一个集合中排除

Mongodb 使用match、lookup和aggregate将一个集合中存在的所有结果从另一个集合中排除,mongodb,mongodb-query,nosql,Mongodb,Mongodb Query,Nosql,如何根据集合B中集合A中存在的当前用户Id从数据库集合中排除所有结果 user.aggregate([ { $lookup: { from: "views", localField: "_id", foreignField: "viewerId", as: "v", }, }, { $match

如何根据集合B中集合A中存在的当前用户Id从数据库集合中排除所有结果

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的结果,当前代码也会给出结果

获得的结果:

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

[]
DB集合截图