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:{path:"$subs",preserveNullAndEmptyArrays:false}},{$match:{"subs.active":"Y"}},{$lookup:{from:"subs",localField:"subs._id",foreignField:"_id",as:"subs.plans"}},{$unwind:{path:"$subs.plans",preserveNullAndEmptyArrays:false}}]}},{$unwind:{path:"$owner",preserveNullAndEmptyArrays:true}},{"$sort":{item:1}},{"$skip":0},{"$limit":20}])

Result