mongoose-plugin-created
v1.4.3
Published
Mongoose.js plugin to capture document creation timestamp with optional user identifier
Downloads
97
Readme
mongoose-plugin-created
A mongoose.js plugin to create a document creation timestamp with optional user identifier.
Installation
npm i --save mongoose-plugin-created
API Reference
Example
var createdPlugin = require('mongoose-plugin-created');
var schema = Schema({...});
schema.plugin(createdPlugin[, OPTIONS]);
mongoose-plugin-created~options
Kind: inner property of mongoose-plugin-created
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| [options] | object | | |
| [options.date] | object | | options for configuring the path for storing the date. |
| options.date.useVirtual | boolean | true | use a virtual path to infer the document creation date from the ObjectId _id
. Will revert to a real path if options.date.options
are specified. |
| options.date.path | string | "created.date" | the path for storing the creation date if not a virtual. |
| 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 creator. |
| options.by.path | string | "created.by" | the path for storing the document creator. |
| 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})
|
| [options.expires] | object | | options for configuring the path to store the expiration time for the document based on the date path. |
| options.expires.path | string | "created.expires" | the path for storing the document expiration timestamp. This is an approimation due to MongoDB's method for expiring documents |
| options.expires.options | object | | property options to set ()type
will always be Date
). (e.g. {select: false})
|
Examples
With Defaults
var createdPlugin = require('mongoose-plugin-created');
var schema = Schema({foo: String});
schema.plugin(createdPlugin);
var Foo = mongoose.model('Foo', schema);
var foo = Foo(); // foo.created --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)'}
With Options
var createdPlugin = require('mongoose-plugin-created');
var schema = Schema({foo: String});
schema.plugin(createdPlugin, {by: {ref: 'UserModel'}});
var Foo = mongoose.model('Foo', schema);
var foo = Foo(); // foo.created --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)'}
foo.created.by = userA; // foo.created --> {date: 'Wed May 05 2015 12:05:50 GMT-0400 (EDT)', by: '507f191e810c19729de860ea'}
License
Apache 2.0