Database
db={comments:[{commentedBy:"userfooid","key":1,"text":"content 111","quoted":null,},{commentedBy:"userfooid","key":2,"text":"content 222","quoted":null,},{commentedBy:"userf333","key":3,"text":"content 333","quoted":1,},],users:[{_id:"userfooid"}],posts:[{posterId:"userfooid"}]}
Query
db.comments.aggregate([{$lookup:{from:"users",let:{userId:"$commentedBy"},as:"commenterDetails",pipeline:[{$match:{$expr:{$eq:["$$userId","$_id"],}}},{$lookup:{from:"posts",as:"posts",let:{posterId:"$_id"},pipeline:[{$match:{$expr:{$eq:["$posterId","$$posterId"]}}},{$count:"total"}]}},{$addFields:{posts:{$arrayElemAt:["$posts",0]}}}]}},{$addFields:{commenterDetails:{$arrayElemAt:["$commenterDetails",0]}}},{$lookup:{from:"comments",let:{quoted:"$quoted"},pipeline:[{$match:{$expr:{$eq:["$$quoted","$key"]}}},{$limit:1},{$project:{_id:0,text:1}}],as:"quotedText"}},{$unwind:{path:"$quotedText",preserveNullAndEmptyArrays:true}},{$addFields:{quotedText:"$quotedText.text"}}])