2.0.0 • Published 5 years ago

historical v2.0.0

Weekly downloads
514
License
MIT
Repository
github
Last release
5 years ago

Build Status

Historical

A Mongoose plugin that archives document diffs and manages document history.

Historical requires a primary key (typically _id) to be present in your schema.

Installation

npm install historical@^2.0.0

Getting Started

Attach the plugin to your schema with any of these optional configuration parameters:

  • name: Provide a collection name. Defaults to <collection>_historicals.
  • connection: Provide a mongoose connection for the historical collection. Defaults to your schema's connection.
  • primaryKeyName: Provide your schema's primary key name. Defaults to _id.
  • primaryKeyType: Provide your schema's primary key type. Defaults to your schema's primary key field configuration.
  • ignore: An array of field names to ignore. Fields included in this list will not be stored in history.
var mongoose  = require('mongoose'),
ExampleSchema = new mongoose.Schema({
    myField: String,
    ignoredField: String,
    anotherIgnoredField: String
});

ExampleSchema.plugin(require('historical'), {
    connection: mongoose.createConnection('mongodb://localhost/example'),
    name: null,
    primaryKeyName: null,
    primaryKeyType: null,
    ignore: ['ignoredField', 'anotherIgnoredField']
});

Document #historicalDetails()

List historical documents up to the given date for a document.

myDocument.historicalDetails(new Date('2010-08-17T12:09:36'), function(e, objs){
   //the list of historical changes for my document
   console.log(objs);
});

Document #historicalRestore()

Returns a document as it was at the given date.

myDocument.historicalRestore(new Date('2010-08-17T12:09:36'), function(e, obj){
   //my document as it was in 2010
   //or null, if it either had not yet been created or was deleted before this time
   if(obj) {
      obj.save();
   }
});

Document #historicalTrim()

Creates a new historical document by flattening history up to the given date, and deletes the touched historical documents. Useful for pruning or establishing a maximum history retention period.

myDocument.historicalTrim(new Date('2010-08-17T12:09:36'), function(e, obj){
   //any history before this time has been flattened into one historical document
   //my document as it was provided
   console.log(obj);
});

Document #historicalSnapshot()

Take a complete and current snapshot of my document and store it in history. Unmodified documents only.

myDocument.historicalSnapshot(function(e, obj){
   //my document as it was provided
   console.log(obj);
});

Document #historicalClear()

Clear all history for my document and take a snapshot. Unmodified documents only.

myDocument.historicalClear(function(e, obj){
   //my document as it was provided
   console.log(obj);
});
2.0.0

5 years ago

1.1.2

6 years ago

1.1.1

6 years ago

1.1.0

6 years ago

1.0.1

8 years ago

1.0.0

8 years ago

0.1.23

9 years ago

0.1.22

9 years ago

0.1.21

9 years ago

0.1.20

9 years ago

0.1.19

9 years ago

0.1.18

9 years ago

0.1.17

9 years ago

0.1.16

9 years ago

0.1.15

9 years ago

0.1.14

10 years ago

0.1.13

10 years ago

0.1.12

10 years ago

0.1.11

10 years ago

0.1.10

10 years ago

0.1.9

10 years ago

0.2.0

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago