mongoose-jsondiffpatch
Mongoose collections history using jsondiffpatch
Installation
yarn add mongoose-jsondiffpatchnpm i mongoose-jsondiffpatch
Operation
Each update will create a history record with jsonDiff of the change. This helps in tracking all the changes happened to an object from the beginning.
Following will be the structure of the diff history being saved:
diff Collection schema:
_id: ObjectId - mongo id of the diff object
collectionName: string - Name of the collection for which diff is saved
collectionId: ObjectId - Mongo Id of the collection being modified
diff: object - Diff object
user: any - User who modified
reason: string - Why the collection is modified
createdAt: Date
updatedAt: Date
_v: number
Setup
Use as you would any Mongoose plugin:
;; const schema = ... ;schema;const model = ;
The plugin also has an omit option which accepts either a string or array. This will omit the given keys from history. Follows dot syntax for deeply nested values.
;; const schema = someField: String ignoredField: String some: deepField: String ; schema;...
API
getDiffs()
Returns raw histories created for a document.
async { try ; // with optional query parameters const histories = await model; ...
getVersion()
Returns an older version of a document.
async { try ; // with optional query parameters const version = await model; ...
Credits
This plugin is inspired by mimani/mongoose-diff-history.