Как использовать агрегацию MongoDB для операций над множествами общего назначения (объединение, пересечение, разность)
Я встречал некоторую специальную реализацию операций над множествами, но ничего для общего случая. Каков общий случай выполнения операций над множествами (в частности, пересечение, объединение, симметричная разность). Это легче понять, используя javascript в $ where или map уменьшить, но я хочу знать, как сделать это в агрегации, чтобы получить собственную производительность.
Лучший способ проиллюстрировать этот вопрос на примере. Скажем, у меня есть запись с 2 массивами / наборами:
db.colors.insert({
_id: 1,
left : ['red', 'green'],
right : ['green', 'blue']
});
Я хочу найти союз, пересечение и различиеоставил' а также 'право' массивы. Еще лучше, наглядно хочу найти:
союз -> ['красный ','зеленый ','синий ']
пересечение -> ['зеленый ']
Симметричная разница -> ['красный ','синий ']