updateMany with criteria "all" to update an array field is not working

Using pull or push the following code is working correctly:

var newRole = {
  roleID: req.body.roleID,
  roleName: req.body.roleName,
  checkbox: false
};
models.Alerts.updateMany({}, { $push: {
  "whoCanSendReceive.sendReal": newRole,
  "whoCanSendReceive.receiveReal": newRole,
  "whoCanSendReceive.sendDrill": newRole,
  "whoCanSendReceive.receiveDrill": newRole
  }}, function(err, alerts) {
  console.log('alerts with new role = ',alerts);
});

I need to use $set to update an array field from roleID and roleName

My model:

var AlertsSchema = new mongoose.Schema({
whoCanSendReceive: {
  sendReal: [{
    roleID: Number,
    roleName: String,
    checkbox: { type: Boolean, default: false }
  }],
  receiveReal: [{
    roleID: Number,
    roleName: String,
    checkbox: { type: Boolean, default: false }
  }]
}, {collection:"Alerts"});
var Alerts;
module.exports.Alerts = mongoose.model("Alerts", AlertsSchema);

My function:

models.Alerts.updateMany({}, {"$set": {
  "whoCanSendReceive.sendReal.roleID": req.body.roleID,
  "whoCanSendReceive.receiveReal.roleName": req.body.roleName,
  "whoCanSendReceive.sendDrill.roleID": req.body.roleID,
  "whoCanSendReceive.receiveDrill.roleName": req.body.roleName
}
});