Database

db={"orders":[{"_id":1,"items":[{"$id":4},{"$id":1},{"$id":2},{"$id":3},{"$id":2}],"price":12,"quantity":2},{"_id":2,"items":[{"$id":4}],"price":20,"quantity":1},{"_id":3}],"inventory":[{"_id":1,"sku":"almonds","description":"product 1","instock":120},{"_id":2,"sku":"bread","description":"product 2","instock":80},{"_id":3,"sku":"cashews","description":"product 3","instock":60},{"_id":4,"sku":"pecans","description":"product 4","instock":70},{"_id":5,"sku":null,"description":"Incomplete"}]}

Query

db.orders.aggregate([{$unwind:"$items"},{$lookup:{from:"inventory",localField:"items.$id",foreignField:"_id",as:"items"}},{$group:{_id:"$_id",items:{$push:{$first:"$items"}},__oldRoot:{$last:"$$ROOT"}}},{$replaceRoot:{newRoot:{$mergeObjects:["$__oldRoot",{items:"$items"}]}}}])

Result