Database

db={"collection":[{_id:"abc",sections:[{sectionId:"sec0",sectionName:"ABC",contents:[{contentId:0,tasks:[{taskId:"task1"},/**May contain 1-100 tasks*/{taskId:"task2"}/**May contain 1-100 tasks*/],contentDescription:"Content is etc",}]}]},],"tasks":[{"_id":"task1",taskDetails:"...."},{"_id":"task2",taskDetails:"...."},]}

Query

db.collection.aggregate([{$match:{_id:"abc"},},{$unwind:"$sections"},{$unwind:{path:"$sections.contents",preserveNullAndEmptyArrays:true,},},{$lookup:{from:"tasks",localField:"sections.contents.tasks.taskId",foreignField:"_id",as:"sections.contents.tasks",},},{$group:{_id:{sectionId:"$sections.sectionId",sectionName:"$sections.sectionName",originalId:"$sections.originalId"},contents:{$push:"$sections.contents"},}},{$group:{_id:"$_id.originalId",sections:{$push:{sectionId:"$_id.sectionId",sectionName:"$_id.sectionName",contents:"$contents"}}}}])

Result