Database

[{"_id":"56d5f7eb604eb380b0d8d8fa","class_id":"173","scores":[{"score":"19.81430597438296","type":"exam"},{"score":"16.851404299968642","type":"quiz"},{"score":"60.108751761488186","type":"homework"},{"score":"22.886167083915776","type":"homework"}],"student_id":"4"},{"_id":"56d5f7eb604eb380b0d8d8fB","class_id":"173","scores":[{"score":"11.81430597438296","type":"exam"},{"score":"11.851404299968642","type":"quiz"},{"score":"68.108751761488186","type":"homework"},{"score":"20.886167083915776","type":"homework"}],"student_id":"5"},{"_id":"56d5f7eb604eb380b0d8d8fc","class_id":"174","scores":[{"score":"55.81430597438296","type":"exam"},{"score":"33.851404299968642","type":"quiz"},{"score":"77.108751761488186","type":"homework"},{"score":"10.886167083915776","type":"homework"}],"student_id":"6"}]

Query

db.collection.aggregate([{"$unwind":{"path":"$scores"}},{"$match":{"scores.type":"homework"}},{"$group":{"_id":{"class_id":"$class_id","student_id":"$student_id"},"scores":{"$push":{"type":"$scores.type","score":"$scores.score"}}}},{$group:{_id:"$_id.class_id",all_scores:{$push:{"student_id":"$_id.student_id",scores:"$scores"}}}},{"$project":{_id:0,class_id:"$_id",all_scores:"$all_scores"}}])

Result