MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Un modo semplice per aumentare le versioni dei documenti Mongoose per qualsiasi query di aggiornamento?

Direi che questa è la strada da percorrere. pre il middleware si adatta esattamente a questa esigenza e non conosco nessun altro modo. In effetti questo è ciò che sto facendo in tutti i miei schemi.

Quello di cui devi essere consapevole, però, è la differenza tra document e interroga middleware.Documento il middleware viene eseguito per init , validate , save e remove operazioni. Ecco, this fa riferimento al documento:

schema.pre('save', function(next) {
  this.increment();
  return next();
});

Interroga il middleware viene eseguito per count , find , findOne , findOneAndRemove , findOneAndUpdate e update operazioni. Ecco, this fa riferimento all'oggetto della query. L'aggiornamento del campo della versione per tali operazioni sarebbe simile al seguente:

schema.pre('update', function( next ) {
  this.update({}, { $inc: { __v: 1 } }, next );
});

Fonte:documentazione di mangusta .