Database

[{id:1,level1:"A",level2:"A1",level3:"A1x"},{id:2,level1:"A",level2:"A1",level3:"A1x"},{id:3,level1:"A",level2:"A2",level3:"A1x"},{id:4,level1:"B",level2:"B1",level3:"B1x"},{id:5,level1:"B",level2:"B1",level3:"B1x"},{id:6,level1:"B",level2:"B1",level3:"B1y"},]

Query

db.collection.aggregate([{$group:{_id:{level1:"$level1",level2:"$level2",level3:"$level3"},count:{$sum:1}}},{$group:{_id:{level1:"$_id.level1",level2:"$_id.level2"},count:{$sum:"$count"},data:{$push:{_id:"$_id.level3",count:"$count",data:"$data"}}}},{$group:{_id:"$_id.level1",count:{$sum:"$count"},data:{$push:{_id:"$_id.level2",count:"$count",data:"$data"}}}}])

Result