Nationwide Polamorous Matrimony

    @syntropy/mongoose-document-versioner

    2.0.2 • Public • Published

    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 }
     * )
     */

    Install

    npm i @syntropy/mongoose-document-versioner

    DownloadsWeekly Downloads

    1

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    42 kB

    Total Files

    7

    Last publish

    Collaborators

    • justin-syntropy
    • compwright