sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoose no guarda el objeto anidado

Me encontré con esta situación frustrante y me sorprendió un poco la solución documentada del sitio web de Mongoose.

entonces, lo que esto significa es guardar las propiedades anidadas de la matriz/objeto (elemento en su caso), debe ser explícito al especificar el cambio .markModified('Item')

var objectToSave = new ModelToSave({
  _id : req.params.id, 
  Item : customObject
});
objectToSave.markModified('Item');
objectToSave.save();

Dado que es un tipo sin esquema, puede cambiar el valor a cualquier otra cosa que desee, pero Mongoose pierde la capacidad de detectar automáticamente y guardar esos cambios. Para "decirle" a Mongoose que el valor de un tipo Mixto ha cambiado, llame al método .markModified(path) del documento pasando la ruta al tipo Mixto que acaba de cambiar.

-- http://mongoosejs.com/docs/schematypes.html#mixed