MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment utiliser la condition de tableau NOT IN dans l'agrégat mongodb $lookup

Vous devez utiliser $not $in avec $expr expression, Parce que $nin est un opérateur de requête pas pour l'expression d'agrégation,

  • un autre correctif dont vous avez besoin pour créer une variable à l'aide de let: { following: "$following"} et utiliser à l'intérieur du pipeline $$following , car le pipeline de recherche ne permettra pas d'accéder aux champs sans référence,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Terrain de travail :https://mongoplayground.net/p/08OT6NnuYHx