Database

[{_id:1,Date:"201507",Subject:"Maths",},{_id:2,Date:"201507",Subject:"Physics"},{_id:3,Date:"201508",Subject:"Maths"},{_id:4,Date:"201507",Subject:"Maths"}]

Query

db.collection.aggregate([{"$group":{"_id":{"Subject":"$Subject","Date":"$Date"},"total":{"$sum":1}}},{"$project":{"_id":0,"Date":"$_id.Date","Subject":{"k":"$_id.Subject","v":"$total"}}},{"$group":{"_id":"$Date","Subject":{"$push":"$Subject"}}},{"$project":{"_id":0,"Subject":{"$arrayToObject":"$Subject"},"Date":"$_id"}}])

Result