sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose sparar inte kapslat objekt

Jag stötte på den här frustrerande situationen och blev lite förvånad över den dokumenterade lösningen från Mongooses hemsida.

så vad detta innebär är att spara kapslade array-/objektegenskaper (objekt i ditt fall), du måste vara tydlig när du specificerar ändringen .markModified('Item')

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

Eftersom det är en schemalös typ kan du ändra värdet till något annat du gillar, men Mongoose förlorar förmågan att automatiskt upptäcka och spara dessa ändringar. För att "berätta" för Mongoose att värdet på en blandad typ har ändrats, anropar du metoden .markModified(path) för dokumentet som skickar sökvägen till den blandade typen du just ändrade.

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




  1. Laravel alla sessions-ID:n med Redis-drivrutinen

  2. Allvarligt fel:Klass 'MongoDB\Driver\Manager' hittades inte

  3. Förstå MongoDB-säkerhetskopieringsalternativ

  4. Asynkron marköriteration med asynkron deluppgift