Database
db={"orders":[{"_id":"5252875356f64d6d28000001","lineItems":[{productId:"prod_007",quantity:3},{productId:"prod_003",quantity:2}]/** other fields omitted*/}],"products":[{_id:"prod_007",moreData:1},{_id:"prod_003",moreData:2},]}
Query
db.orders.aggregate([{"$unwind":"$lineItems"},{"$lookup":{"from":"products","localField":"lineItems.productId","foreignField":"_id","as":"result"}},{"$set":{"lineItems":{"$mergeObjects":["$lineItems",{"$first":"$result"}]}}},{"$group":{"_id":"$_id","lineItems":{"$push":"$lineItems"}}}])