sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat podmínku NOT IN array uvnitř mongodb $lookup agregátu

Měli byste použít $not $in s $expr výraz, protože $nin je operátor dotazu, který není určen pro výraz agregace,

  • ještě jednu opravu, kterou potřebujete k vytvoření proměnné pomocí let: { following: "$following"} a použijte uvnitř kanálu $$following , protože vyhledávací kanál neumožní přístup k polím bez reference,
  {
    $lookup: {
      from: "Users",
      let: {
        following: "$following"
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $not: {
                $in: [
                  "$_id",
                  "$$following"
                ]
              }
            }
          }
        }
      ],
      as: "result"
    }
  }

Pracovní hřiště:https://mongoplayground.net/p/08OT6NnuYHx




  1. MongoDB &CodeIgniter:Vyberte, kde pole existuje

  2. Správné vypnutí připojení databáze MongoDB z ovladače C# 2.1?

  3. Komprese v node.js

  4. Jak na to:Přidejte Cloudera Search do svého clusteru pomocí Cloudera Manager