MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Erreur Mongoose - pas de méthode 'toObject' après la mise à niveau

Quelque part entre la dernière version 3.8.x et 4.0 le post init hook a été modifié, mais non documenté. Avant le changement this référencé le document actuel, mais maintenant this est l'émetteur d'événement qui a déclenché l'appel de hook. La nouvelle façon d'accéder au document actuel consiste à ajouter un paramètre à la fonction de crochet, tout comme le pré save et remove crochets.

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

Malheureusement, depuis ce changement, toutes les propriétés non-schéma qui sont ajoutées au document semblent être perdues entre le post init et pré save crochets, il n'y a donc aucun moyen de résoudre ce problème pour le moment.

J'ai ouvert un problème (#2952 ) sur Github vendredi dernier. Il y a actuellement 387 problèmes ouverts, donc je ne sais pas à quelle vitesse cela sera résolu. Je publierai une mise à jour si j'entends quelque chose.