Verwendung der MongoDB-Aggregation für allgemeine Mengenoperationen (Vereinigung, Schnittmenge, Differenz)
Ich bin auf eine spezielle Implementierung von Mengenoperationen gestoßen, aber nichts für den allgemeinen Fall. Was ist der allgemeine Fall für die Durchführung von Mengenoperationen (insbesondere Schnittmenge, Vereinigung, symmetrische Differenz)? Dies ist einfacher, wenn Sie Javascript in einem $ where- oder map-Befehl verwenden, aber ich möchte wissen, wie dies in Aggregation durchgeführt wird, um native Leistung zu erzielen.
Die Frage lässt sich am besten anhand eines Beispiels veranschaulichen. Angenommen, ich habe einen Datensatz mit 2 Arrays / Sets:
db.colors.insert({
_id: 1,
left : ['red', 'green'],
right : ['green', 'blue']
});
Ich möchte die Vereinigung, den Schnittpunkt und den Unterschied der "linken" und "rechten" Arrays finden. Noch besser, bildlich möchte ich finden:
Union -> ['rot', 'grün', 'blau']
Überschneidung -> ['grün']
Symmetrischer Unterschied -> ['rot', 'blau']