Database

db={users:[{_id:1,username:"mark"},{_id:2,username:"leon"},{_id:3,username:"leontin"}],data:[{_id:ObjectId("6675309f82bdfbe3b00febfa"),user:1,provider:1,message:"94451 Laos Sweden Iran"},{_id:ObjectId("6675309f82bdfbe3b00febfb"),user:2,provider:3,message:"message 22222"},{_id:ObjectId("6675309f82bdfbe3b00febfc"),user:3,provider:39,message:"message 3333"}],providers:[{_id:1,name:"prov1"},{_id:2,name:"prov2"},{_id:3,name:"prov3"},{_id:39,name:"prov39"}]}

Query

db.data.aggregate([{"$lookup":{"from":"users","localField":"user","foreignField":"_id","as":"user_info"}},{"$lookup":{"from":"providers","localField":"provider","foreignField":"_id","as":"provider_info"}},{$match:{$expr:{$and:[{$regexMatch:{input:{$first:"$user_info.username"},regex:"^leo",options:"i"}},{$regexMatch:{input:{$first:"$provider_info.name"},regex:"^prov3",options:"i"}}]}}}])

Result