1.4.4 • Published 8 years ago
mongoose-plugin-modified v1.4.4
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.modified --> {}
foo.foo = 'My update'; // foo.modified --> {}
foo.save(); // foo.modified --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)'}
With Monitoring Selected Fields
var modifiedPlugin = require('mongoose-plugin-modified');
var schema = Schema({
foo: {
type: String,
modified: true // indicates to monitor this field for modification
},
bar: {
type: String
}
});
schema.plugin(modifiedPlugin);
var Foo = mongoose.model('Foo', schema);
var foo = Foo.findOne(); // foo.modified --> {}
foo.foo = 'My update'; // foo.modified --> {}
foo.save(); // foo.modified --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)'}
foo.bar = 'My other update'; // foo.modified --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)'}
foo.save(); // foo.modified --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)'}
// modified.date is not updated
License
Apache 2.0