Database
db={"reel":[{"_id":"reel_1","category":[{"_id":"cat_1","videos":[{"_id":"vid_1"},{"_id":"vid_2"}]},{"_id":"cat_2","videos":[{"_id":"vid_3"},{"_id":"vid_4"}]}]}],"video":[{"_id":"vid_1","title":"title 1","groups":[{"_id":"group_1"},{"_id":"group_2"}]},{"_id":"vid_2","title":"title 2","groups":[{"_id":"group_1"},{"_id":"group_4"}]},{"_id":"vid_3","title":"title 3","groups":[{"_id":"group_1"},{"_id":"group_2"}]},{"_id":"vid_4","title":"title 4","groups":[{"_id":"group_3"},{"_id":"group_4"}]}],"document":[{"_id":"doc_1","title":"document title","assessments":[{"reel":"reel_1","category":"cat_1","groups":[{"_id":"group_1"},{"_id":"group_2"}]}]}]}
Query
db.reel.aggregate([{$unwind:{path:"$category",preserveNullAndEmptyArrays:true}},{$lookup:{from:"video",let:{videos:"$category.videos._id"},pipeline:[{$match:{"groups._id":"group_1",$expr:{$in:["$_id","$$videos"]}}}],as:"category.videos"}},{$lookup:{from:"document",let:{reel_id:"$_id",category_id:"$category._id"},pipeline:[{$match:{$expr:{$and:[{$in:["$$reel_id","$assessments.reel"]},{$in:["$$category_id","$assessments.category"]}]}}},{$project:{_id:1,title:1}}],as:"category.documents"}},{$addFields:{"category.documents":{$cond:[{$eq:[{$size:"$category.documents"},0]},"$$REMOVE","$category.documents"]}}},{$group:{_id:"$_id",category:{$push:"$category"}}}])