Je dirais que c'est la voie à suivre. pré middleware correspond exactement à ce besoin, et je ne connais pas d'autre moyen. En fait, c'est ce que je fais dans tous mes schémas.
Ce dont vous devez cependant être conscient, c'est la différence entre document et requête middleware.Document les middleware sont exécutés pour init
, validate
, save
et remove
opérations. Voilà, this
fait référence au document :
schema.pre('save', function(next) {
this.increment();
return next();
});
Requête les middleware sont exécutés pendant count
, find
, findOne
, findOneAndRemove
, findOneAndUpdate
et update
opérations. Voilà, this
fait référence à l'objet de requête. La mise à jour du champ de version pour de telles opérations ressemblerait à ceci :
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Source :documentation sur la mangouste .