Database

db={"user":[{"_id":1,"cart":[{"_id":2,"type":"A"},{"_id":3,"type":"B"}]}],"items":[{"_id":2,"name":"item 1"},{"_id":3,"name":"item 2"}]}

Query

db.user.aggregate([{"$lookup":{"from":"items","localField":"cart._id","foreignField":"_id","as":"items"}},{"$addFields":{"cart":{"$map":{"input":"$cart","in":{"$mergeObjects":["$$this",{"item":{"$first":{"$filter":{"input":"$items","as":"i","cond":{"$eq":["$$i._id","$$this._id"]}}}}}]}}},"items":"$$REMOVE"}}])

Result