Reputation: 1
I have a document:
[
{name: "Jack", age: "18"},
{name: "Mark", age: "24"},
{name: "Jane", age: "16"},
...
]
And I have a list of names:
["Mark", "Bob", "Jack"]
Is there any way to find which names are not in document? In my case it will be ["Bob"].
Upvotes: 0
Views: 45
Reputation: 1274
Please try below solution using the aggregate pipeline.
db.collection.aggregate([
{
$group: {
_id: null,
names: {
$push: "$name"
}
}
},
{
$project: {
leftNames: {
$setDifference: [
[
"Mark",
"Bob",
"Jack"
],
"$names"
]
}
}
}
])
Upvotes: 1