Database

[{_id:1,quantity:[2,1,3],reagents:[{name:"FirstItem",other_field:"..."},{name:"SecondItem",other_field:"...",other_other_field:"..."},{name:"ThirdItem",other_other_field:"..."}]}]

Query

db.collection.aggregate([{$addFields:{reagents:{$map:{input:{$zip:{inputs:["$quantity","$reagents"]}},as:"reagent",in:{$mergeObjects:[{$arrayElemAt:["$$reagent",1]},{quantity:{$arrayElemAt:["$$reagent",0]}}]}}}}}])

Result