Database
db={"Customers":[{_id:1,name:"Customer 1"},{_id:2,name:"Customer 2"}],"Services":[{_id:101,name:"Service 1"},{_id:102,name:"Service 2"}],"Relationships":[{_id:1,Customer_id:1,Service_id:101,start:ISODate("2013-10-01T00:00:00.000Z"),end:ISODate("2013-10-01T00:00:00.000Z")},{_id:2,Customer_id:1,Service_id:102,start:ISODate("2013-10-01T00:00:00.000Z"),end:ISODate("2013-10-01T00:00:00.000Z")},{_id:3,Customer_id:2,Service_id:101,start:ISODate("2013-10-01T00:00:00.000Z"),end:ISODate("2013-10-01T00:00:00.000Z")}]}
Query
db.Customers.aggregate([{$match:{_id:1}},{$lookup:{from:"Relationships",localField:"_id",foreignField:"Customer_id",as:"docs",pipeline:[{$lookup:{from:"Services",localField:"Service_id",foreignField:"_id",as:"docs",pipeline:[]}},{$set:{docs:{$first:"$docs.name"}}}]}}])