Kun version 2.6+:
Fra version 2.6 af MongoDB er dette blevet meget meget nemmere. Du kan nu gøre følgende for at løse dette problem:
Union
db.colors.aggregate([
{'$project': {
union:{$setUnion:["$left","$right"]}
}
}
]);
Krydsningspunkt
db.colors.aggregate([
{'$project': {
int:{$setIntersection:["$left","$right"]}
}
}
]);
Relativt komplement
db.colors.aggregate([
{'$project': {
diff:{$setDifference:["$left","$right"]}
}
}
]);
Symmetrisk forskel
db.colors.aggregate([
{'$project': {
diff:{$setUnion:[{$setDifference:["$left","$right"]}, {$setDifference:["$right","$left"]}]}
}
}
]);
Bemærk:Der er en billet anmoder om, at symmetrisk forskel tilføjes som en kernefunktion i stedet for at skulle kombinere to sæt forskelle.