Database
[{name:"someone",grades:[{"midterm_1":23,"midterm_2":50,"midterm_3":83}]},{name:"someone else",grades:[{"midterm_1":69,"midterm_2":30,"midterm_3":13}]},]
Query
db.collection.aggregate([{$unwind:"$grades"},{$addFields:{grades:{"$objectToArray":"$grades"}}},{$unwind:"$grades"},{$project:{name:1,grade:"$grades.v"}},{$sort:{grade:-1}}])