#mongodb #mongoose #mongo-shell
#mongodb #мангуст #mongo-shell
Вопрос:
допустим, у меня есть коллекция с {key:1},{key:2},{key:3}
У меня есть некоторый массив [1,2,3,4,5,6,7]
Я хочу получить элементы, которых нет в коллекции.
в этом примере он будет печатать 4,5,6,7
Возможно ли это?
Ответ №1:
Вы можете использовать $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"] }
}
}
])
Комментарии:
1. спасибо, что работает, можно ли добавить какой-нибудь фильтр перед группировкой?