Database

db={"lists":[{_id:1,item:"a",owner:1}],"users":[{_id:1,subs:[{_id:1,active:"Y"},{_id:2,active:"N"}]}],"subs":[{_id:1,text:"A"},{_id:2,text:"B"}]}

Query

db.lists.aggregate([{"$lookup":{"from":"users","as":"owner",let:{owner:"$owner"},pipeline:[{$match:{$expr:{$eq:["$$owner","$_id"]}}},{$unwind:"$subs"},{$match:{"subs.active":"Y"}},{$lookup:{from:"subs",localField:"subs._id",foreignField:"_id",as:"subs._id"}},{$unwind:"$subs._id"},{$group:{_id:"$_id",subs:{$push:{_id:"$subs._id._id",text:"$subs._id.text",active:"$subs.active"}}}}]}},{$unwind:"$owner"},{"$sort":{item:1}},{"$skip":0},{"$limit":20}])

Result