Database
db={"users":[{"_id":"Xuibgsadbgsi35Gsdf","fullName":"User A"},{"_id":"Afstg34tg4536gh","fullName":"User B"},{"_id":"KHJDFhfs7dfgsvdfwsef","fullName":"User C"}],"messages":[{"_id":"YONgsa793423bD","groupId":"Phsdfyg92345sgb7651","senderId":"Xuibgsadbgsi35Gsdf","message":"Hello there!"},{"_id":"sdgDFGbaofh135df","groupId":"Phsdfyg92345sgb7651","senderId":"KHJDFhfs7dfgsvdfwsef","message":"Hello @Xuibgsadbgsi35Gsdf"},{"_id":"sdgDFGbaofh135ef","groupId":"Phsdfyg92345sgb7651","senderId":"KHJDFhfs7dfgsvdfwsef","message":"Hello"}]}
Query
db.users.aggregate([{$match:{fullName:"User A"}},{"$lookup":{"from":"messages",let:{id:"$_id"},"pipeline":[{$match:{$or:[{$expr:{$eq:["$senderId","$$id"]}},{$expr:{"$regexMatch":{"input":"$message","regex":"$$id",}}}]}}],"as":"senders"}},{$match:{$expr:{"$gt":[{"$size":"$senders"},0]}}}])