Database

[{"students":[{"name":"John","semesters":[{"semester":"fall","grades":[{"EXAM_1":25},{"EXAM_2":45},{"EXAM_3":22}]},{"semester":"winter","grades":[{"EXAM_1":85},{"EXAM_2":32},{"EXAM_3":17}]}]},{"name":"Abraham","semesters":[{"semester":"fall","grades":[{"EXAM_1":5},{"EXAM_2":91},{"EXAM_3":51}]},{"semester":"winter","grades":[{"EXAM_1":55},{"EXAM_2":62},{"EXAM_3":17}]}]},{"name":"Zach","semesters":[{"semester":"spring","grades":[{"EXAM_1":18},{"EXAM_2":19},{"EXAM_3":26}]},{"semester":"winter","grades":[{"EXAM_1":100},{"EXAM_2":94},{"EXAM_3":45}]}]}]}]

Query

db.collection.aggregate([{"$unwind":"$students"},{"$unwind":"$students.semesters"},{"$project":{_id:0,"name":"$students.name","semester":"$students.semesters.semester","calculated_exam_grade":{$sum:[{"$multiply":[2,{$sum:["$students.semesters.grades.EXAM_1"]}]},{$sum:["$students.semesters.grades.EXAM_3"]}]}}},{"$sort":{"calculated_exam_grade":-1}},{"$limit":30}])

Result