Chỉ phiên bản 2.6+:
Kể từ phiên bản 2.6 của MongoDB, điều này đã trở nên dễ dàng hơn nhiều. Bây giờ bạn có thể làm như sau để giải quyết vấn đề này:
Liên minh
db.colors.aggregate([
{'$project': {
union:{$setUnion:["$left","$right"]}
}
}
]);
Giao lộ
db.colors.aggregate([
{'$project': {
int:{$setIntersection:["$left","$right"]}
}
}
]);
Bổ sung tương đối
db.colors.aggregate([
{'$project': {
diff:{$setDifference:["$left","$right"]}
}
}
]);
Sự khác biệt đối xứng
db.colors.aggregate([
{'$project': {
diff:{$setUnion:[{$setDifference:["$left","$right"]}, {$setDifference:["$right","$left"]}]}
}
}
]);
Lưu ý:Có một vé yêu cầu sự khác biệt đối xứng được thêm vào như một tính năng cốt lõi thay vì phải thực hiện sự kết hợp của hai sự khác biệt tập hợp.