MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose speichert verschachteltes Objekt nicht

Ich bin auf diese frustrierende Situation gestoßen und war ein wenig überrascht von der dokumentierten Lösung auf der Website von Mongoose.

Das bedeutet also, verschachtelte Array-/Objekteigenschaften (in Ihrem Fall Item) zu speichern, Sie müssen die Änderung explizit angeben .markModified('Item')

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

Da es sich um einen schemalosen Typ handelt, können Sie den Wert beliebig ändern, aber Mongoose verliert die Fähigkeit, diese Änderungen automatisch zu erkennen und zu speichern. Um Mongoose zu "sagen", dass sich der Wert eines gemischten Typs geändert hat, rufen Sie die .markModified(path)-Methode des Dokuments auf und übergeben den Pfad zu dem gerade geänderten gemischten Typ.

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