Mongoose Time-To-Live plugin
Provides time-to-live support for Mongoose.
- ttl: the time each doc should live in the db (default 60 seconds)
- interval: how often the expired doc reaper runs (default 5 mins)
- reap: enable the expired doc reaper (default true)
- onReap: callback passed to reaper execution
var schema = ;schemapluginttl ttl: 5000 ;
The ttl option supports the ms module by guille meaning we can specify ttls with friendlier syntax. Example:
value milliseconds========================'2d' 172800000'1.5h' 5400000'1h' 3600000'1m' 60000'5s' 5000'500ms' 500100 100
The expired document reaper can be disabled by passing
Useful when working in multi-core environments when we only want one
process executing it.
var schema = ;schemapluginttl ttl: 5000 reap: false ;var Cache = dbmodel'Cache' schema;if isMyWorker CachestartTTLReaper;
The reaper can also be stopped.
Time-to-live is specified at the collection level, however it can also be overridden for a given document.
var cache = ;cachettl = '2m' // lives for two minutescachesave;
We can also reset the ttl for a given document to its default plugin state.
MongoDB is getting official support for TTL collections soon-ish at which point this plugin will need to change.