sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Una forma fácil de incrementar las versiones de documentos de Mongoose para cualquier consulta de actualización?

Yo diría que este es el camino a seguir. pre el middleware se ajusta exactamente a esta necesidad, y no sé de otra manera. De hecho, esto es lo que estoy haciendo en todos mis esquemas.

Sin embargo, lo que debe tener en cuenta es la diferencia entre document y consulta middleware.Documento el middleware se ejecuta para init , validate , save y remove operaciones. Ahí, this se refiere al documento:

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

Consulta el middleware se ejecuta para count , find , findOne , findOneAndRemove , findOneAndUpdate y update operaciones. Ahí, this hace referencia al objeto de consulta. Actualizar el campo de versión para tales operaciones se vería así:

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

Fuente:documentación de mangosta .