Database

[{BlockName:"B1",FloorName:"F1",Units:[{UnitName:104,Location:["Hall","Living"]}]},{BlockName:"B1",FloorName:"F2",Units:[{UnitName:104,Location:["Hall","Living"]}]},{BlockName:"B2",FloorName:"F1",Units:[{UnitName:104,Location:["Hall","Living"]}]},{BlockName:"B2",FloorName:"F2",Units:[{UnitName:104,Location:["Hall","Living"]}]}]

Query

db.collection.aggregate([{$group:{_id:"$BlockName",Floors:{$push:{"FloorName":"$FloorName","Units":"$Units"}}}},{$project:{_id:0,BlockName:"$_id",Floors:1}}])

Result