バージョン2.6以降のみ:
MongoDBのバージョン2.6以降、これははるかに簡単になりました。これで、この問題を解決するために次のことができます。
ユニオン
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"]}]}
}
}
]);
注:チケット があります 2つのセットの差を結合するのではなく、対称差をコア機能として追加するように要求します。