mongoose-plugin.js
861 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// # boot - mongoose plugin
var _ = require('underscore')
var jsonSelect = require('mongoose-json-select')
exports = module.exports = function() {
return function(Schema) {
// NOTE: To allow `.sort('-created_at')` to work
// we need to have these as actual paths
Schema.add({
updated_at: Date,
created_at: Date
})
Schema.pre('save', function(next) {
var that = this
that.updated_at = _.isUndefined(that.created_at) ? that._id.getTimestamp() : new Date();
if (!that.created_at)
that.created_at = that._id.getTimestamp()
next()
})
Schema.set('toObject', {
virtuals: true,
getters: true
})
Schema.set('toJSON', {
virtuals: true,
getters: true
})
Schema.plugin(jsonSelect, '-_id')
return Schema
}
}
exports['@singleton'] = true