MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose n'enregistre pas l'objet imbriqué

Je suis tombé sur cette situation frustrante et j'ai été un peu surpris par la solution documentée du site Web de Mongoose.

donc ce que cela signifie est de sauvegarder les propriétés de tableau/objet imbriquées (Item dans votre cas), vous devez être explicite en spécifiant le changement .markModified('Item')

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

Puisqu'il s'agit d'un type sans schéma, vous pouvez modifier la valeur à votre guise, mais Mongoose perd la capacité de détecter et d'enregistrer automatiquement ces modifications. Pour "indiquer" à Mongoose que la valeur d'un type Mixte a changé, appelez la méthode .markModified(path) du document en transmettant le chemin vers le type Mixte que vous venez de modifier.

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