MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como usar a condição de matriz NOT IN dentro do agregado de $ lookup do mongodb


Você deve usar $not $in com $expr expressão, porque $nin é um operador de consulta não para expressão de agregação,
  • mais uma correção que você precisa para criar variável usando let: { following: "$following"} e use dentro do pipeline $$following , porque o pipeline de pesquisa não permitirá acessar campos sem referência,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Playground de trabalho:https://mongoplayground.net/p/08OT6NnuYHx