sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo usar la condición NOT IN array dentro de mongodb $ lookup agregado

Deberías usar $not $in con $expr expresión, Porque $nin es un operador de consulta no para la expresión de agregación,

  • una solución más que necesita para crear una variable usando let: { following: "$following"} y use dentro de la canalización $$following , porque la canalización de búsqueda no permitirá acceder a los campos sin referencia,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Zona de juegos de trabajo:https://mongoplayground.net/p/08OT6NnuYHx