Database

db={"FeedCategories":[{"_id":"1","name":"XXX1","status":"active"},{"_id":"2","name":"XXX2","status":"active"}],"Feeds":[{"_id":"1","category":"1","status":"published"},{"_id":"2","category":"1","status":"published"},{"_id":"3","category":"2","status":"published"}],"FeedCategoriesUser":[{"_id":"1","Feed_left_id":"1","User_right_id":"2"},{"_id":"2","Feed_left_id":"2","User_right_id":"2"}]}

Query

db.FeedCategories.aggregate([{$lookup:{from:"Feeds",let:{categoryId:"$_id"},pipeline:[{"$match":{"$expr":{"$eq":["$category","$$categoryId"]},"status":"published"}}],as:"feedsByCategory"}},{$lookup:{from:"FeedCategoriesUser",let:{feedid:"$feedsByCategory._id"},pipeline:[{"$match":{"$expr":{"$in":["$Feed_left_id","$$feedid"]}}}],as:"feedsByCategoryUsed"}}])

Result