问题描述
假设我有一个{key:1},{key:2},{key:3}
的收藏集
我有一些数组[1,2,3,4,5,6,7]
我想获取不在集合中的元素。
在此示例中,它将打印4,7
有可能吗?
解决方法
您可以使用$setDifference
,
-
$group
(以null表示),以在elem
中创建元素数组, -
$project
使用$setDifference
创建元素差异
db.collection.aggregate([
{
$group: {
_id: null,elem: { $push: "$key" }
}
},{
$project: {
elem: { $setDifference: [[1,2,3,4,5,6,7],"$elem"] }
}
}
])