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

Einfache Möglichkeit, Mongoose-Dokumentversionen für Aktualisierungsanfragen zu erhöhen?

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 .