Ik kwam deze frustrerende situatie tegen en was een beetje verrast door de gedocumenteerde oplossing van Mongoose's website.
dus wat dit betekent is het opslaan van geneste array-/objecteigenschappen (item in jouw geval), je moet expliciet zijn in het specificeren van de wijziging .markModified('Item')
var objectToSave = new ModelToSave({
_id : req.params.id,
Item : customObject
});
objectToSave.markModified('Item');
objectToSave.save();
Omdat het een type zonder schema is, kun je de waarde wijzigen in alles wat je maar wilt, maar Mongoose verliest de mogelijkheid om die wijzigingen automatisch te detecteren en op te slaan. Om Mongoose te "vertellen" dat de waarde van een gemengd type is gewijzigd, roept u de .markModified(path)-methode van het document aan en geeft u het pad door aan het gemengde type dat u zojuist hebt gewijzigd.
-- http://mongoosejs.com/docs/schematypes.html#mixed