mongoose-plugin-modified
A mongoose.js plugin to capture document updates with timestamp and optional user identifier.
The modification date is updated pre-validation if a monitored field has been modified
Installation
npm i --save mongoose-plugin-modified
API Reference
Example
var modifiedPlugin = require('mongoose-plugin-modified');
var schema = Schema({...});
schema.plugin(modifiedPlugin[, OPTIONS]);
mongoose-plugin-modified~options
Kind: inner property of mongoose-plugin-modified
Param | Type | Default | Description |
---|
[options] | object | | |
options.optionKey | string | "modified" | the path options key to mark paths for inclusion in monitoring for modification. If no paths are tagged, document modification is monitored. |
[options.date] | object | | options for configuring the path for storing the date. |
options.date.path | string | "modified.date" | the path for storing the modified date. |
options.date.options | object | | property options to set (type will always be Date ). (e.g. {select: false}) |
[options.by] | object | | options for configuring the path for storing the modifier. |
options.by.path | string | "modified.by" | the path for storing the document modifier. |
options.by.ref | string | | the reference model to use (e.g. {by: {ref: 'ModelRefName'}}) |
options.by.options | object | | property options to set (if not a reference the type will always be String ). (e.g. {select: false}) |
Examples
With Monitoring Entire Document
var modifiedPlugin = require('mongoose-plugin-modified');
var schema = Schema({foo: String});
schema.plugin(modifiedPlugin);
var Foo = mongoose.model('Foo', schema);
var foo = Foo.findOne();
foo.foo = 'My update';
foo.save();
With Monitoring Selected Fields
var modifiedPlugin = require('mongoose-plugin-modified');
var schema = Schema({
foo: {
type: String,
modified: true
},
bar: {
type: String
}
});
schema.plugin(modifiedPlugin);
var Foo = mongoose.model('Foo', schema);
var foo = Foo.findOne();
foo.foo = 'My update';
foo.save();
foo.bar = 'My other update';
foo.save();
License
Apache 2.0