Database

db={"user":[{id:"123",name:"user_name",cities:["1","2"],services:["1","2"],email:"mail@domain.com"}],"services":[{service_id:"1",service_name:"Service Name 1"},{service_id:"2",service_name:"Service Name 2"},{service_id:"3",service_name:"Service Name 3"},{service_id:"4",service_name:"Service Name 4"}],"cities":[{city_id:"1",city_name:"City Name 1"},{city_id:"2",city_name:"City Name 2"},{city_id:"3",city_name:"City Name 3"},{city_id:"4",city_name:"City Name 4"}],"prices":[{price_id:"1",service_id:"1",price:"£15",user_id:"123"},{price_id:"2",service_id:"2",price:"£25",user_id:"123"}]}

Query

db.user.aggregate([{"$match":{id:"123",}},{"$lookup":{"from":"cities","let":{"city_id":"$cities"},"pipeline":[{"$match":{"$expr":{"$in":["$city_id","$$city_id"]}}},{"$project":{"_id":0,"city_id":0}}],"as":"cities"}},{"$lookup":{"from":"services","let":{"service_id":"$services"},"pipeline":[{"$match":{"$expr":{"$in":["$service_id","$$service_id"]}}},{"$project":{"_id":0,/**"service_id": 0*/}}],"as":"services"}},{"$unwind":{"path":"$services",}},{"$lookup":{"from":"prices","let":{"service_id":["$services.service_id"]},"pipeline":[{"$match":{"$expr":{"$in":["$service_id","$$service_id"]}}},{"$project":{"_id":0,/**"service_id": 0*/}}],"as":"prices"}},{"$addFields":{"services.price":{"$arrayElemAt":["$prices.price",0]}}},{"$group":{"_id":"$id","name":{"$first":"$name"},"email":{"$first":"$email"},"cities":{"$first":"$cities"},"services":{"$addToSet":"$services"}}}])

Result