Database

[{"_id":1,"student":"A","work":{"type":"hw"},"score":{"number":10}},{"_id":2,"student":"A","work":{"type":"hw"},"score":{"number":15}},{"_id":3,"student":"A","work":{"type":"cw"},"score":{"number":5}}]

Query

db.collection.aggregate([{$match:{student:{$in:["A"]},"work.type":{$in:["hw","cw"]}}},{"$group":{"_id":{"worktype":"$work.type","student":"$student"},"workScore":{"$sum":"$score.number"}}}])

Result