Ich würde sagen, das ist der richtige Weg. vor Middleware passt genau zu diesem Bedarf, und ich kenne keinen anderen Weg. Genau das mache ich in allen meinen Schemas.
Was Sie jedoch beachten müssen, ist der Unterschied zwischen Dokument und Abfrage Middleware.Dokument Middleware wird für init
ausgeführt , validate
, save
und remove
Operationen. Dort this
verweist auf das Dokument:
schema.pre('save', function(next) {
this.increment();
return next();
});
Abfrage Middleware wird für count
ausgeführt , find
, findOne
, findOneAndRemove
, findOneAndUpdate
und update
Operationen. Dort this
bezieht sich auf das Abfrageobjekt. Das Aktualisieren des Versionsfelds für solche Operationen würde wie folgt aussehen:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Quelle:Mongoose-Dokumentation .