Database

db={post:[{"_id":ObjectId("59f9c5629f75813e21a6fe34"),"parent_id":"0","parent_oid":"0","name":"main_category","short_desc":"","long_desc":"","slug":"main_category","status":true,"createdAt":ISODate("2017-11-01T13:00:18.714Z"),"updatedAt":ISODate("2019-02-19T07:31:20.967Z")},{"_id":ObjectId("59f9c5629f75813e21a6fe73"),"parent_id":"59f9c5629f75813e21a6fe34","parent_oid":ObjectId("59f9c5629f75813e21a6fe34"),"name":"sub_category","short_desc":"","long_desc":"","slug":"sub_category","status":true,"createdAt":ISODate("2017-11-01T13:00:18.714Z"),"updatedAt":ISODate("2019-02-19T07:31:20.967Z")},{"_id":ObjectId("59f9c5629f75813e21a6fe33"),"parent_id":"59f9c5629f75813e21a6fe73","parent_oid":ObjectId("59f9c5629f75813e21a6fe73"),"name":"sub_category1","short_desc":"","long_desc":"","slug":"sub_category1","status":true,"createdAt":ISODate("2017-11-01T13:00:18.714Z"),"updatedAt":ISODate("2019-02-19T07:31:20.967Z")}]}

Query

db.post.aggregate([{$match:{parent_id:"0"}},{"$graphLookup":{"from":"post","startWith":"$_id","connectFromField":"_id","connectToField":"parent_oid","as":"response"}},{$unwind:"$response"},{$group:{_id:"$_id",main_category:{$first:"$slug"},subCategories:{$push:{k:"$response.name",v:"$response.slug"}}}},{$replaceRoot:{newRoot:{$mergeObjects:[{mainCategory:"$main_category"},{$arrayToObject:"$subCategories"}]}}}])

Result