sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose gemmer ikke indlejret objekt

Jeg stødte på denne frustrerende situation og blev lidt overrasket over den dokumenterede løsning fra Mongooses hjemmeside.

så hvad dette betyder er at gemme indlejrede matrix/objekt egenskaber (element i dit tilfælde), du skal være eksplicit i at specificere ændringen .markModified('Item')

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

Da det er en skemaløs type, kan du ændre værdien til noget andet, du kan lide, men Mongoose mister evnen til automatisk at registrere og gemme disse ændringer. For at "fortælle" Mongoose, at værdien af ​​en blandet type er ændret, skal du kalde .markModified(path)-metoden for dokumentet, der videregiver stien til den blandede type, du lige har ændret.

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




  1. MongoDB $toLower

  2. Lagring af nogle små (under 1 MB) filer med MongoDB i NodeJS UDEN GridFS

  3. MongoDB - få dokumenter med max attribut per gruppe i en samling

  4. Højtydende MongoDB-klynger på Azure