Możesz użyć .aggregate
dla tego. Prawdopodobnie tego szukasz:
var y = ["Entity1", "Entity2", "Entity3", "Entity4"];
db.col.aggregate([
{
$project :
{
_id : 1,
name : 1,
entity : 1,
x : {
$size : {
$ifNull: [{$setIntersection : ["$entity", y]}, []]
}
}
}
},
{ $match : { x : 3 } }
]);