sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose-fel - ingen 'toObject'-metod efter uppgradering

Någonstans mellan den sena versionen 3.8.x och 4.0 posten init krok har ändrats, men inte dokumenterats. Före ändringen this refererade till det aktuella dokumentet, men nu this är händelsesändaren som utlöste hook call. Det nya sättet att komma åt det aktuella dokumentet är genom att lägga till en parameter till hook-funktionen, precis som pre save och remove krokar.

schema.post('init', function(doc) {
    doc._original = doc.toObject();
});

Efter denna ändring verkar tyvärr alla icke-schemaegenskaper som läggs till i dokumentet gå förlorade mellan posten init och pre save krokar, så det finns inget sätt att fixa detta just nu.

Jag öppnade ett problem (#2952 ) på Github i fredags. Det finns för närvarande 387 öppna problem, så jag är inte säker på hur snabbt detta kommer att lösas. Jag lägger upp en uppdatering om jag hör något.




  1. Är Redis list eller set pop metod tråd säker?

  2. yii2 med mongodb fungerar inte för inloggning eller registrering

  3. Golang GraphQL MongoDB Kämpar för att få ut datum och id från databasen

  4. MongoDB:är det möjligt att fånga TTL-händelser med Change Stream för att emulera en schemaläggare (cronjob)?