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

Mongoose-Fehler – keine „toObject“-Methode nach dem Upgrade

Irgendwo zwischen der späten Version 3.8.x und 4.0 der Post init Hook wurde geändert, aber nicht dokumentiert. Vor der Änderung this das aktuelle Dokument referenziert, aber jetzt this ist der Emitter des Ereignisses, der den Hook-Aufruf ausgelöst hat. Die neue Möglichkeit, auf das aktuelle Dokument zuzugreifen, besteht darin, der Hook-Funktion einen Parameter hinzuzufügen, genau wie beim Vorab-save und remove Haken.

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

Leider scheinen seit dieser Änderung alle Nicht-Schema-Eigenschaften, die dem Dokument hinzugefügt werden, zwischen dem Post init verloren zu gehen und vorher save Haken, daher gibt es derzeit keine Möglichkeit, dies zu beheben.

Ich habe ein Problem geöffnet (#2952 ). ) auf Github letzten Freitag. Es gibt derzeit 387 offene Probleme, daher bin ich mir nicht sicher, wie schnell dies gelöst wird. Ich werde ein Update posten, wenn ich etwas höre.