Database

db={"Categories":[{_id:"cat-id","url":"/cat-1",childs:[{"position":1,"childs":[{"category":"sub-category-1-id","productPage":""},{"category":"sub-category-2-id","productPage":""}]},{"position":2,"childs":[{"category":"","productPage":"product-page-1-id"},{"category":"","productPage":"product-page-2-id"}]}],"links":[{"position":0,"url":"/related-category-1-url"},{"position":1,"url":"/related-category-2-url"}],"productPages":[{"position":0,"productPage":"product-page-1-id"},{"position":1,"productPage":"product-page-2-id"}]}],"ProductPages":[{"_id":"product-page-1-id","product":"product 1",url:"/page-1",},{_id:"product-page-2-id",product:"product 2",url:"/page-2",}]}

Query

db.Categories.aggregate([{$match:{"url":"/cat-1"}},{$unwind:{path:"$links",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$links.values",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childs",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childs.childs",preserveNullAndEmptyArrays:true}},{$graphLookup:{from:"ProductPages",startWith:"$productPages.productPage",connectFromField:"productPages.productPage",connectToField:"_id",as:"rootPages"}},{$graphLookup:{from:"ProductPages",startWith:"$childs.childs.productPage",connectFromField:"childs.childs.productPage",connectToField:"_id",as:"childPages"}},{$graphLookup:{from:"Categories",startWith:"$links.values.url",connectFromField:"links.values.url",connectToField:"url",as:"linkCategories"}},{$graphLookup:{from:"Categories",startWith:"$childs.url",connectFromField:"childs.url",connectToField:"url",as:"childUrlCategories"}},{$graphLookup:{from:"Categories",startWith:"$childs.childs.category",connectFromField:"childs.childs.category",connectToField:"_id",as:"childCategories"}},{$unwind:{path:"$linkCategories",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childUrlCategories",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childCategories",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childCategories.childs",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childCategories.childs.childs",preserveNullAndEmptyArrays:true}},{$graphLookup:{from:"ProductPages",startWith:"$linkCategories.productPages.productPage",connectFromField:"linkCategories.productPages.productPage",connectToField:"_id",as:"linkPages"}},{$graphLookup:{from:"ProductPages",startWith:"$childUrlCategories.productPages.productPage",connectFromField:"childUrlCategories.productPages.productPage",connectToField:"_id",as:"childUrlPages"}},{$graphLookup:{from:"ProductPages",startWith:"$childCategories.childs.childs.productPage",connectFromField:"childCategories.childs.childs.productPage",connectToField:"_id",as:"childCategoryPages"}},{$unwind:{path:"$rootPages",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$linkPages",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childUrlPages",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childPages",preserveNullAndEmptyArrays:true}},{$unwind:{path:"$childCategoryPages",preserveNullAndEmptyArrays:true}},{$group:{_id:"",rootPages:{$addToSet:"$rootPages"},linkPages:{$addToSet:"$linkPages"},childUrlPages:{$addToSet:"$childUrlPages"},childPages:{$addToSet:"$childPages"},childCategoryPages:{$addToSet:"$childCategoryPages"}}},{$project:{_id:0,rootPages:{_id:1,product:1},linkPages:{_id:1,product:1},childUrlPages:{_id:1,product:1},childPages:{_id:1,product:1},childCategoryPages:{_id:1,product:1}}},{$addFields:{"childCategoryPages":{$map:{"input":"$childCategoryPages","as":"el","in":"$$el.product"}}}},{$addFields:{"childPages":{$map:{"input":"$childPages","as":"el","in":"$$el.product"}}}},{$addFields:{"childUrlPages":{$map:{"input":"$childUrlPages","as":"el","in":"$$el.product"}}}},{$addFields:{"linkPages":{$map:{"input":"$linkPages","as":"el","in":"$$el.product"}}}},{$addFields:{"rootPages":{$map:{"input":"$rootPages","as":"el","in":"$$el.product"}}}},{$project:{products:{$concatArrays:["$rootPages","$linkPages","$childUrlPages","$childPages","$childCategoryPages"]}}},{$unwind:{path:"$products",preserveNullAndEmptyArrays:true}},{$group:{_id:"",products:{$addToSet:"$products"}}},{$project:{_id:0,products:1}},])

Result