Database

[{"_id":1,"name":"Class 1","students":[{"rollNo":10001,"name":"Ram","score":65},{"rollNo":10002,"name":"Shyam","score":90},{"rollNo":10003,"name":"Mohan","score":75}]},{"_id":2,"name":"Class 2","students":[{"rollNo":20001,"name":"Krishna","score":88},{"rollNo":20002,"name":"Sohan","score":91},{"rollNo":20003,"name":"Radhika","score":82},{"rollNo":20004,"name":"Komal","score":55},{"rollNo":20005,"name":"Sonam","score":91}]},{"_id":3,"name":"Class 3","students":[{"rollNo":30001,"name":"Monika","score":77},{"rollNo":30002,"name":"Rahul","score":81}]}]

Query

db.collection.aggregate([{$unwind:"$students"},{$sort:{"students.score":-1}},{$group:{"_id":"$_id","name":{$first:"$name"},"students":{$push:"$students"}}},{"$project":{"top_two":{"$slice":["$students",2]}}}])

Result