Database

db={"students":[{"group":"A","subgroup":"A1","name":"Abby"},{"group":"A","subgroup":"A2","name":"Andy"},{"group":"A","subgroup":"A2","name":"Amber"},{"group":"B","subgroup":"B1","name":"Bart"},]}

Query

db.students.aggregate([{"$group":{"_id":"$group","subgroup":{"$addToSet":{"_id":"$subgroup","name":"$name",count:{$sum:1}}},count:{$sum:1}}}])

Result