MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Maneira fácil de incrementar versões de documentos do Mongoose para quaisquer consultas de atualização?


Eu diria que esse é o caminho. pré middleware se encaixa exatamente nessa necessidade, e não conheço outra forma. Na verdade, isso é o que estou fazendo em todos os meus esquemas.

O que você precisa estar ciente, porém, é a diferença entre document e consultar middleware.Documento middleware são executados para init , validate , save e remove operações. Lá, this refere-se ao documento:
schema.pre('save', function(next) {
  this.increment();
  return next();
});

Consulta middleware são executados para count , find , findOne , findOneAndRemove , findOneAndUpdate e update operações. Lá, this refere-se ao objeto de consulta. A atualização do campo de versão para tais operações ficaria assim:
schema.pre('update', function( next ) {
  this.update({}, { $inc: { __v: 1 } }, next );
});

Fonte:documentação do mangusto .