I want to change lastActiveAt
field everytime when model is updated with {active: true}
. I have something like this:
MySchema.pre('update', function(next) {
if (this._compiledUpdate.$set.active) {
this.update({}, {lastActiveAt: new Date()});
}
next();
});
// ...
MyModel.update({/* ... */}, {active: true});
It works but I don't like that underscore in _compiledUpdate
. Is there a recommended way to access query in pre('update') middleware?
You can try this.getUpdate()
method to get the update query:
MySchema.pre('update', function(next) {
if (this.getUpdate().$set.active) {
this.update({}, {lastActiveAt: new Date()});
}
next();
});