Database
db={"producer":[{producer_id:1,name:"test"},{producer_id:2,name:"test2"}],"service":[{service_id:1,value:12},{service_id:1,value:13},{service_id:2,value:14}],"property":[{property_id:1,property:12},{property_id:1,property:56},{property_id:2,property:34}]}
Query
db.producer.aggregate([{"$lookup":{"from":"service","localField":"producer_id","foreignField":"service_id","as":"ps"}},{"$lookup":{"from":"property","localField":"producer_id","foreignField":"property_id","as":"pp"}},{"$unwind":"$pp"},{"$unwind":"$ps"},{"$group":{"_id":{"service_id":"$ps.service_id","property_id":"$pp.property_id","value":"$ps.value","property":"$pp.property"},"producer_id":{"$first":"$producer_id"},"name":{"$first":"$name"}}},{"$project":{"_id":0,"producer_id":"$producer_id","name":"$name","service_id":"$_id.service_id","property_id":"$_id.property_id","value":"$_id.value","property":"$_id.property"}}])