【发布时间】:2020-09-10 08:18:44
【问题描述】:
假设我有一个 {key:1},{key:2},{key:3} 的集合
我有一些数组[1,2,3,4,5,6,7]
我想获取集合中没有的元素。
在这个例子中,它将打印4,5,6,7
有可能吗?
【问题讨论】:
标签: mongodb mongoose mongo-shell
假设我有一个 {key:1},{key:2},{key:3} 的集合
我有一些数组[1,2,3,4,5,6,7]
我想获取集合中没有的元素。
在这个例子中,它将打印4,5,6,7
有可能吗?
【问题讨论】:
标签: mongodb mongoose mongo-shell
你可以使用$setDifference,
$group by null,在elem中创建一个元素数组,$project 使用 $setDifference 创建元素差异
db.collection.aggregate([
{
$group: {
_id: null,
elem: { $push: "$key" }
}
},
{
$project: {
elem: { $setDifference: [[1, 2, 3, 4, 5, 6, 7], "$elem"] }
}
}
])
【讨论】: