MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak używać agregacji MongoDB do operacji na zbiorach ogólnego przeznaczenia (suma, przecięcie, różnica)

Tylko wersja 2.6+:

Od wersji 2.6 MongoDB stało się to znacznie łatwiejsze. Aby rozwiązać ten problem, możesz teraz wykonać następujące czynności:

Związek

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

Skrzyżowanie

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

Względne uzupełnienie

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

Różnica symetryczna

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

Uwaga:istnieje bilet żądając dodania symetrycznej różnicy jako podstawowej funkcji, zamiast konieczności łączenia dwóch zestawów różnic.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Filtruj dane za pomocą wypełnienia mangusty

  2. Testowanie i dekrementacja w operacji atomowej?

  3. Błąd uwierzytelniania podczas łączenia się z Mongo Atlas z Mule

  4. Porównanie dwóch pól kolekcji mongo za pomocą sterownika c# w mono

  5. jak przekonwertować ciąg na wartości liczbowe w mongodb