2.0.0 • Published 6 years ago

mongoose-document-versioner v2.0.0

Weekly downloads
11
License
MIT
Repository
github
Last release
6 years ago

Mongoose Document Versioner

This module sets a document version key that is incremented any time you save or update a document. This is useful for detecting version conflicts.

Increments version on the following pre hooks:

  • findOneAndUpdate
  • updateOne
  • updateMany
  • update
  • save

Note: Model.findByIdAndUpdate() calls the findOneAndUpdate hook.

Usage

const versionerPlugin = require('mongoose-document-versioner');

const schema = new mongoose.Schema({ /* .... */ });
schema.plugin(versionerPlugin);
const Model = mongoose.model('Model', schema);

/* EXAMPLES */

Model.update({attr: 'foo'}, {attr: 'bar'}, {multi: true});
/*
 * mongo query:
 * model.update(
 *   { attr: 'foo' },
 *   { '$inc': { version: 1 }, '$set': { attr: 'bar' } },
 *   { multi: true }
 * )
 */

Model.findOneAndUpdate({attr: 'foo'}, {attr: 'bar'});
/*
 * mongo query:
 * model.findAndModify(
 *   { attr: 'foo' },
 *   { '$inc': { version: 1 }, '$set': { attr: 'bar' } },
 *   { new: false, upsert: false }
 * )
 */