Database
db={"members":[{_id:1,FirstName:"first",LastName:"last",Email:"email"}],"messages":[{_id:2,createdBy:3,threads:[{message:"",attachments:[],from:4,to:[{status:"Read",recipient:1}]}]}]}
Query
db.messages.aggregate([{$unwind:"$threads"},{$unwind:"$threads.to"},{$lookup:{from:"members",let:{memberId:"$threads.to.recipient"},as:"members",pipeline:[{$match:{$expr:{$eq:["$$memberId","$_id"]}}},{$project:{FirstName:1,_id:1,LastName:1,Email:1}}]}}])