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

Jak používat agregaci MongoDB pro operace s obecnými sadami (sjednocení, průnik, rozdíl)

Pouze verze 2.6 a vyšší:

Od verze 2.6 MongoDB je to mnohem jednodušší. Nyní můžete tento problém vyřešit takto:

Unie

db.colors.aggregate([
    {'$project': {  
                    union:{$setUnion:["$left","$right"]}
                 }
    }
]);

Křižovatka

db.colors.aggregate([
    {'$project': {  
                  int:{$setIntersection:["$left","$right"]}
                 }
    }
]);

Relativní doplněk

db.colors.aggregate([
    {'$project': {  
                    diff:{$setDifference:["$left","$right"]}
                 }
    }
]);

Symetrický rozdíl

db.colors.aggregate([
    {'$project': {  
                    diff:{$setUnion:[{$setDifference:["$left","$right"]}, {$setDifference:["$right","$left"]}]}
                 }
    }
]);

Poznámka:Existuje vstupenka požadovat, aby byl symetrický rozdíl přidán jako základní funkce, spíše než sjednocení dvou množin rozdílů.



  1. Mongoose se nikdy nepřipojí k mongodb

  2. Chyba ECONNREFUSED při připojování k mongodb z node.js

  3. Jak vytvořit omezenou kolekci pomocí Spring Data? - MongoDB

  4. mongoose .js model bez exportu, vyžadující ve složce prašník stále fungující schéma