mongoose-document-versioner
Version:
Force version to increment every time you update or save a mongoose document
28 lines (23 loc) • 625 B
JavaScript
const set = require('lodash.set');
module.exports = function (schema) {
function incrementVersionOnSave (next) {
this.version++;
next();
}
function incrementVersionOnUpdate (next) {
set(this, '_update.$inc.version', 1);
next();
}
schema.add({
version: {
type: Number,
required: true,
default: 0
}
});
schema.pre('save', incrementVersionOnSave);
schema.pre('findOneAndUpdate', incrementVersionOnUpdate);
schema.pre('updateOne', incrementVersionOnUpdate);
schema.pre('updateMany', incrementVersionOnUpdate);
schema.pre('update', incrementVersionOnUpdate);
};