MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да използваме MongoDB агрегиране за операции с набори с общо предназначение (обединение, пресичане, разлика)

Само версия 2.6+:

От версия 2.6 на MongoDB това стана много по-лесно. Сега можете да направите следното, за да разрешите този проблем:

Съюз

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

Кръстовище

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

Относително допълнение

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

Симетрична разлика

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

Забележка:Има тикет изисквайки симетрична разлика да бъде добавена като основна характеристика, вместо да се налага да се прави обединение на две множествени разлики.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Не може да се свърже с нов главен набор от реплики

  2. Spark и MongoDB приложение в Scala 2.10 maven вградена грешка

  3. Премахнете елемент от масив от ВСИЧКИ документи с помощта на MongoDB C# драйвер

  4. MongoDB groupby различно сортиране заедно

  5. MongoDB:Копиране на масив в друг масив в същия документ