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ů.