MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come utilizzare la condizione dell'array NOT IN all'interno di mongodb $lookup aggregate

Dovresti usare $not $in con $expr espressione, perché $nin è un operatore di query non per l'espressione di aggregazione,

  • un'altra correzione necessaria per creare una variabile usando let: { following: "$following"} e utilizzare all'interno della pipeline $$following , perché la pipeline di ricerca non consentirà di accedere ai campi senza riferimento,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Parco giochi di lavoro:https://mongoplayground.net/p/08OT6NnuYHx