Database

db={"users":[{"_id":"5a708a38e6a4078bd49f01d5","locations":[ObjectId("5b55e9820b720a1a7cd19633"),ObjectId("5a708a38e6a4078bd49ef13f")]}],"user-locations":[{"_id":ObjectId("5b55e9820b720a1a7cd19633"),"name":"Location 1"},{"_id":ObjectId("5a708a38e6a4078bd49ef13f"),"name":"Location 2"}]}

Query

db.users.aggregate([{$match:{_id:"5a708a38e6a4078bd49f01d5"}},{$unwind:{path:"$locations",includeArrayIndex:"index"}},{$lookup:{from:"user-locations",localField:"locations",foreignField:"_id",as:"locations"}},{$set:{locations:{$arrayElemAt:["$locations",0]}}},{$sort:{index:1}},{$group:{_id:"$_id",locations:{$push:"$locations"}}}])

Result