Database

[{"_id":"1234","entries":[{"name":"Josh","numbers":[4,1,3,2]},{"name":"only three","numbers":[1,2,3,5]},{"name":"none","numbers":[9,8,7,6]}]}]

Query

db.collection.aggregate([{$unwind:"$entries"},{/** separated for clarity*/$addFields:{intersect:{$setIntersection:["$entries.numbers",[1,2,3,4]]}}},{/** remove docs which have no match*/$match:{intersect:{$ne:[]}}},{/** can be combined with the stage above*/$addFields:{matchingCount:{$size:"$intersect"}}},{/** if you only want guesses with at least three matches*/$match:{$expr:{$gte:[/** change this two whatever you want*/"$matchingCount",3]}}},{$unset:["fields","you","don't","want"]}])

Result