Database

db={"users":[{"_id":"616b429e0de99f6f74f911b9","name":{"prenom":"Kisko","nom":"Barrisson"},"created":ISODate("2021-10-22T13:13:30.000Z")}],"devices":[{"_id":"6193b7a7751212e5358b481a","data":[{"X":123,"Y":200,"name":"name data1"},{"X":124,"Y":300,"name":"name data2"}],"alarm":22,"user":"616b429e0de99f6f74f911b9"}],"locations":[{"_id":"6193b7a7751212e5358b481a","X":123,"Y":200,"adresse":"ffffffffff"}]}

Query

db.devices.aggregate([{"$match":{"user":"616b429e0de99f6f74f911b9"}},{"$unwind":{"path":"$data"}},{"$lookup":{"from":"users","localField":"user","foreignField":"_id","as":"joined__"}},{"$unwind":{"path":"$joined__"}},{"$replaceRoot":{"newRoot":{"$mergeObjects":["$joined__","$$ROOT"]}}},{"$lookup":{"from":"locations","let":{"x":"$data.X","y":"$data.Y"},"pipeline":[{"$match":{"$expr":{"$and":[{"$eq":["$$x","$X"]},{"$eq":["$$y","$Y"]}]}}}],"as":"joined"}},{"$unwind":{"path":"$joined"}},{"$replaceRoot":{"newRoot":{"$mergeObjects":["$joined","$$ROOT"]}}},{"$group":{"_id":"$user","data":{"$push":{"adresse":"$adresse","X":"$X","Y":"$Y","name":"$data.name"}},"userName":{"$first":"$name"}}}])

Result