I want to edit the field inside the collection of array of object

Thanks a-lot for explaining I am stuck now in one place in the investors array of object its receivedMoney is not updates what api i have implemented let me share but its not working properly
The paymentSchedule is working but the investor field is not updating.

const payMonthlyInstallment = async (req, res) => {
  const contractDetails =  await Contract.findOneAndUpdate(
    
     { _id: ObjectId(req.params.id),"paymentschedule._id": ObjectId(req.body.month) },
      {
        $set: { "paymentschedule.$.paid": true,"paymentschedule.$.paymentRecieveDate": new Date()},
      },   
  ).populate("customer").populate({
    path : 'product',
    populate : {
      path : 'category'
    }
  });
  contractDetails.investor.map(async item => {
    let monthlyInstallment;
    switch(contractDetails?.product?.category?.profit){
      case 70: monthlyInstallment = ((((((contractDetails?.product?.price - contractDetails?.downPayment) * 25)/100) + (contractDetails?.product?.price - contractDetails?.downPayment)) / contractDetails?.planOfInstallment) ); break;
      case 30: monthlyInstallment = ((((((contractDetails?.product?.price - contractDetails?.downPayment) * 15)/100) + (contractDetails?.product?.price - contractDetails?.downPayment)) / contractDetails?.planOfInstallment) ); break;
      case 15: monthlyInstallment = ((((((contractDetails?.product?.price - contractDetails?.downPayment) * 5)/100) + (contractDetails?.product?.price - contractDetails?.downPayment)) / contractDetails?.planOfInstallment) ); break;
      default: monthlyInstallment = ((((((contractDetails?.product?.price - contractDetails?.downPayment) * 5)/100) + (contractDetails?.product?.price - contractDetails?.downPayment)) / contractDetails?.planOfInstallment) ) ; break;
    }
    
        const investorPercentage = ((item?.money/(contractDetails?.product?.price - contractDetails?.downPayment)) * 100)
    const amount = monthlyInstallment * investorPercentage / 100
    const updateContract =  await Contract.findOneAndUpdate(
    
      { _id: ObjectId(req.params.id),"investor._id": ObjectId(item?._id) },
       {
        $set: {
              "investor.$.moneyRecieved": {$add: [ "investor.$.moneyRecieved", amount ]},
           }
      }
   )
   console.log("contractDetails",updateContract)

  })
  res.send(contractDetails)
}