Jeg vil sige, at dette er vejen at gå. før middleware passer præcis til dette behov, og jeg kender ikke nogen anden måde. Det er faktisk det, jeg gør i alle mine skemaer.
Hvad du dog skal være opmærksom på, er forskellen mellem dokument og forespørgsel middleware.Dokument middleware udføres for init
, validate
, save
og remove
operationer. Der, this
henviser til dokumentet:
schema.pre('save', function(next) {
this.increment();
return next();
});
Forespørgsel middleware udføres for count
, find
, findOne
, findOneAndRemove
, findOneAndUpdate
og update
operationer. Der, this
henviser til forespørgselsobjektet. Opdatering af versionsfeltet til sådanne operationer vil se sådan ud:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Kilde:mongoose-dokumentation .