sql >> Database >  >> NoSQL >> MongoDB

Hoe NOT IN array-voorwaarde te gebruiken in mongodb $ lookup-aggregaat

Gebruik $not $in met $expr expressie, omdat $nin is een query-operator niet voor aggregatie-expressie,

  • nog een oplossing die je nodig hebt om een ​​variabele te maken met let: { following: "$following"} en gebruik binnen de pijplijn $$following , omdat de opzoekpijplijn geen toegang geeft tot velden zonder verwijzing,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Werkspeeltuin:https://mongoplayground.net/p/08OT6NnuYHx




  1. Mongoose verwijdert (pull) een document binnen een array, werkt niet met ObjectID

  2. Hoe documentvelden in mongo-shell te bekijken?

  3. Mongodb-verbindingen in Java beheren als objectgeoriënteerd

  4. Eerste MongoDB Hosting DBaaS ter ondersteuning van Azure Government voor de publieke sector