title: Mongoose save() not updating value in an array in database document
body: <p>I am trying to update a document in a collection (units) using GUI and after it gets updated I want to update the value (user.Units which is an array of Unit names)  in collection (users). If the array length is just 1 element it gets updated and also shows up in database and everything works well, but when Array of Units have more than one element , I try to update it through a for loop, it shows it gets updated  but when I check the database it is still not updated.</p>
  
  <p>I really can't figure out why its not updating the database when I update the value through a loop. </p>
  
  <p><strong>Whole Edit and update function:-</strong></p>
  
  <pre><code> edit_unit: function (req, res, next) {
      var Data = req.body;
  
      Client_data.Unit.findById(req.params.unitId, function (err, unit) {
          var error = false;
          if (err) {
              error = err;
          } else if (!unit) {
              error = "FATAL: unable to look up Unit #" + req.params.unitId;
          } else {
  
              switch(req.body.name) {
                  case 'Icon':
                      var Icon = unit.Icon;
  
                      User.find({"Units":Icon}, function (err, users) {
                          if (err)
                          console.log(err);
  
                          users.forEach(function (u) {
                              if (u.Units.length &gt; 1) {
                              for (var i = 0; i &lt;= u.Units.length; i++) {
                                 if(u.Units[i] == Icon) {
                                     u.Units[i] = req.body.value;
                                 }
                              }
                              }
                              else {
                                  u.Units = req.body.value;
                              }
                              u.save(u);
                          });
                      });
                      unit[req.body.name] = req.body.value;
                      break;
                  case 'Description':
                      unit[req.body.name] = req.body.value;
                      break;
                  default:
                      unit[req.body.name] = req.body.value;
                      break;
              }
              var data = JSON.stringify(req.body);
              unit.save();
  
              res.writeHead(200, {
                  'Content-Length': data.length,
                  'Content-Type':  'application/json'
              });
              res.end(data);
          }
      });
  }
  </code></pre>
  
  <p><strong>req.body:-</strong></p>
  
  <pre><code>{ name: 'Icon',
    value: 'Health Utility 22c',
    pk: '5395ed107cd92dc40eaafb56' 
  }
  </code></pre>
  
  <p><strong>User Schema:-</strong></p>
  
  <pre><code>var userSchema = mongoose.Schema({
  UserName:     { type: String, required: true },
  Password:     { type: String },
  FirstName:    { type: String, required: true },
  LastName:     { type: String, required: true },
  CompanyName:  { type: String },
  PhoneNumber:  { type: Number },
  StartDate:    { type: Date,   required: true },
  EndDate:      { type: Date,   required: true, default: new Date('9999-12-12')  },
  ClientID:     { type: ObjectId, ref: 'Client', default: null },
  DepartmentID: { type: ObjectId, ref: 'Department' },
  ManagerID:    { type: ObjectId, ref: 'User', default: null},
  Units:        [ { type: String, required: true } ],
  UserList:      { type: Array, default:[]},
  Access:    [{ type: String, enum: ['DEMO', 'USER','MANAGER','ADMINISTRATOR','OWNER']}],
  Credentials:  { type: String },
  AFTE:         { type: Number},
  SessionID:    { type: String, default: null }
  }, { safe: true });
  </code></pre>