Database
db={"invoice":[{_id:1,items:[{_id:1,color:1,neededFieldToPush:123},{_id:2,color:2,neededFieldToPush:566}]}],"colors":[{_id:1,colorName:"red"},{_id:2,colorName:"green"}]}
Query
db.invoice.aggregate([{$sort:{date:-1}},{$skip:0},{$limit:10},{$lookup:{from:"colors",localField:"items.color",foreignField:"_id",as:"itemColor"}},{$addFields:{items:{$map:{input:"$items",as:"i",in:{$mergeObjects:["$$i",{color:{$reduce:{input:"$itemColor",initialValue:"",in:{$cond:[{$eq:["$$this._id","$$i._id"]},"$$this.colorName","$$value"]}}}}]}}},itemColor:"$$REMOVE"}}])