Database

db={"users":[{"_id":ObjectId("5e50b1dbdf0f000094006b62"),"name":"first user","city":"new york"},{"_id":ObjectId("5e50b1e6df0f000094006b63"),"name":"second user","city":"new york"},{"_id":ObjectId("5e50b1f6df0f000094006b64"),"name":"third user","city":"california"}],"products":[{"_id":ObjectId("5e50b249df0f000094006b65"),"product_name":"first book","product_type":"book","user_id":ObjectId("5e50b1dbdf0f000094006b62")},{"_id":ObjectId("5e50b259df0f000094006b66"),"product_type":"laptop","user_id":ObjectId("5e50b1f6df0f000094006b64")},{"_id":ObjectId("5e50b2dcdf0f000094006b67"),"product_name":"second book","product_type":"book","user_id":ObjectId("5e50b1dbdf0f000094006b62")}]}

Query

db.products.aggregate([{$lookup:{from:"users",let:{user_id:"$user_id"},pipeline:[{$match:{$expr:{$and:[{$eq:["$_id","$$user_id"]},{$eq:["$city","new york"]}]}}}],as:"user"}},{$match:{$expr:{$gt:[{$size:"$user"},0]}}}])

Result