Database

[{"_id":"1","score":200,"items":[{"_id":"1","title":"title1","category":"sport"},{"_id":"2","title":"title2","category":"sport"},{"_id":"3","title":"title3","category":"tv"},{"_id":"4","title":"title4","category":"movies"}]},{"_id":"2","score":1000000000,"items":[{"_id":"9","title":"titleBoo","category":"food"},{"title":"title4","category":"movies"},{"title":"titlexx","category":"food"},{"title":"titl113","category":"sport"}]},{"_id":"3","score":500,"items":[{"title":"title3","category":"movies"},{"title":"title3","category":"food"},{"title":"title3","category":"sport"},{"title":"title3","category":"sport"}]}]

Query

db.collection.aggregate([{$setWindowFields:{sortBy:{score:-1},output:{bestScore:{$max:"$score"}}}},{$match:{$expr:{$or:[{$eq:["$score","$bestScore"]},{$in:["food","$items.category"]}]}}},{$limit:2},{$unwind:"$items"},{$facet:{category:[{$match:{"items.category":"food"}},{$limit:1}],other:[{$limit:1}]}},{$replaceRoot:{newRoot:{$cond:[{$eq:[{$size:"$category"},1]},{$first:"$category"},{$first:"$other"}]}}}])

Result