Database
db={"collection":[{_id:"abc",sections:[{sectionId:"sec0",sectionName:"ABC",contents:[{contentId:0,tasks:[{taskId:"task1"}/**May contain 1-100 tasks*/],contentDescription:"Content is etc",}]}]},],"tasks":[{"_id":"task1",taskDetails:"...."},]}
Query
db.collection.aggregate([{$match:{_id:"abc"},},{$unwind:"$sections"},{$unwind:{path:"$sections.contents",preserveNullAndEmptyArrays:true,},},{$unwind:{path:"$sections.contents.tasks",preserveNullAndEmptyArrays:true,},},{$lookup:{from:"tasks",let:{task_id:"$sections.contents.tasks.taskId"},pipeline:[{$match:{$expr:{$eq:["$_id","$$task_id"]}}},],as:"sections.contents.tasks",},},{$addFields:{"sections.contents.tasks":{$arrayElemAt:["$sections.contents.tasks",0],},},},{$group:{_id:{contentId:"$sections.contents.contentId",sectionId:"$sections.sectionId",sectionName:"$sections.sectionName",originalId:"$_id"},tasks:{$push:"$sections.contents.tasks"},contentDescription:{$first:"$sections.contents.contentDescription"},}},{$group:{_id:{sectionId:"$_id.sectionId",sectionName:"$_id.sectionName",originalId:"$_id.originalId"},contents:{$push:{contentId:"$_id.contentId",tasks:"$tasks",contentDescription:"$contentDescription"}},}},{$group:{_id:"$_id.originalId",sections:{$push:{sectionId:"$_id.sectionId",sectionName:"$_id.sectionName",contents:"$contents"}}}}])