Database

[{"name":"Algorithms","category":"Computer Science"},{"name":"Android Programming","category":"Computer Science"},{"name":"Polish","category":"Foreign Languages"},{"name":"Portuguese","category":"Foreign Languages"},{"name":"Quechua","category":"Foreign Languages"},{"name":"Health and Medicine","category":"Science"},{"name":"Inorganic Chemistry","category":"Science"}]

Query

db.collection.aggregate([{$sort:{name:1}},{$group:{_id:"$category",subjects:{$push:{id:"$_id",name:"$name"}},count:{$sum:1}}},{$sort:{_id:1}}])

Result