Database

db={"transaction":[{"_id":ObjectId("5cff102b4ef90140801af1e9"),"totalPrice":3.32,"number":17,"__v":0,"taxes":[{"_id":ObjectId("5cff104b4ef90140801af211"),"tax":ObjectId("5b60ba0b6e7a8a3a101ea73a"),"taxAmount":0.21,"taxBase":1,"percentage":21},{"_id":ObjectId("5cff104b4ef90140801af210"),"tax":ObjectId("5bb1932f2db234342831f99e"),"taxAmount":0.11,"taxBase":1,"percentage":10.5}]}],"taxes":[{"_id":ObjectId("5b60ba0b6e7a8a3a101ea73a"),"name":"IVA","percentage":21},{"_id":ObjectId("5bb1932f2db234342831f99e"),"name":"IVA 10.5","percentage":10.5}]}

Query

db.transaction.aggregate([{"$match":{"_id":ObjectId("5cff102b4ef90140801af1e9")}},{$lookup:{from:"taxes",localField:"taxes.tax",foreignField:"_id",as:"taxDetails"}},{$addFields:{taxes:{$map:{input:"$taxes",as:"t",in:{$mergeObjects:["$$t",{tax:{$arrayElemAt:[{$filter:{input:"$taxDetails",as:"td",cond:{$eq:["$$td._id","$$t.tax"]}}},0]}}]}}}}},{$project:{"taxDetails":0}}])

Result