在我的mongodb聚合管道中,我有一个$facet
阶段,它会产生多个
输出字段,例如:pipe_1
和pipe_2
。
结果具有以下形式:
{
pipe_1: [{"key": "a"}, {"key": "b"}, {"key": "c"}, {"key": "d"}],
pipe_2: [{"key": "a"}, {"key": "B"}, {"key": "d"}]
}
我的问题是,现在如何从中获得以下结果:
[
{"key": "a"},
{"key": "d"}
]
我只想要两个列表中都没有重复的键 结果。最好我想在没有任何缓慢小组讨论的情况下给出答案,并且 它必须适用于两个以上的列表。
谢谢。
答案 0 :(得分:2)
您可以使用$setIntersection运算符:
db.collection.aggregate([
{
$project: {
result: {
$setIntersection: [ "$pipe_1", "$pipe_2" ]
}
}
}
])