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

Un moyen facile d'incrémenter les versions de document Mongoose pour toute requête de mise à jour ?

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 .