Database

[{"_id":1,"date":ISODate("2019-10-10T00:00:00.000Z"),"description":"INTERNET BILL","credit":"","debit":"-100.00","category":"home","subcategory":"internet","__v":0},{"_id":2,"date":ISODate("2019-10-10T00:00:00.000Z"),"description":"WATER BILL","credit":"","debit":"-150.00","category":"home","subcategory":"water","__v":0},{"_id":3,"date":ISODate("2019-10-10T00:00:00.000Z"),"description":"MC DONALDS","credit":"","debit":"-30.00","category":"food","subcategory":"restaurants","__v":0},{"_id":4,"date":ISODate("2019-10-10T00:00:00.000Z"),"description":"BURGER KING","credit":"","debit":"-50.00","category":"food","subcategory":"restaurants","__v":0},{"_id":5,"date":ISODate("2019-10-10T00:00:00.000Z"),"description":"WALMART","credit":"","debit":"-20.00","category":"food","subcategory":"groceries","__v":0},]

Query

db.collection.aggregate([{$group:{_id:{category:"$category",subcategory:"$subcategory"},total:{$sum:{$toDouble:"$debit"}}}},{$group:{_id:"$_id.category",total:{$sum:"$total"},subcategories:{$push:{id:"$_id.subcategory",total:"$total"}}}}])

Result