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.