mongoose-plugin-modified
v1.4.4
Published
Mongoose.js plugin to capture document modification timestamp with optional user identifier
Downloads
5
Readme
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