Se os documentos de entrada forem:
{ _id: 1 },
{ _id: 2 },
{ _id: 5 },
{ _id: 10 }
E o array para combinar é:
var INPUT_ARRAY = [ 1, 7, 15 ]
A seguinte agregação:
db.test.aggregate( [
{
$match: {
_id: {
$in: INPUT_ARRAY
}
}
},
{
$group: {
_id: null,
matches: { $push: "$_id" }
}
},
{
$project: {
ids_not_exist: { $setDifference: [ INPUT_ARRAY, "$matches" ] },
_id: 0
}
}
] )
Devoluções:
{ "ids_not_exist" : [ 7, 15 ] }