Database
db={"myCollection":[{_id:"doc_123",parent_id:123,active:true,parent_desc:"Sample parent desc 1"},{_id:"doc_123_1",parent_id:123,active:true},{_id:"doc_123_2",parent_id:123,active:true},{_id:"doc_456",parent_id:456,active:true,parent_desc:"Sample parent desc 2"},{_id:"doc_456_1",parent_id:456,active:true},{_id:"doc_789",parent_id:789,active:true,parent_desc:"Sample parent desc 3"},{_id:"doc_789_1",parent_id:789,active:true}]}
Query
db.myCollection.aggregate([{$match:{parent_desc:{$exists:true}}},{$lookup:{from:"myCollection",localField:"parent_id",foreignField:"parent_id",pipeline:[{$match:{parent_desc:{$exists:false}}}],as:"children"}},{$unwind:"$children"},{$replaceWith:{"$mergeObjects":["$children",{parent_desc:"$parent_desc"}]}}])