取决于 mongoose pre('update') 中的查询更改文档
Depends on query change document in mongoose pre('update')
每次使用 {active: true}
更新模型时,我都想更改 lastActiveAt
字段。我有这样的东西:
MySchema.pre('update', function(next) {
if (this._compiledUpdate.$set.active) {
this.update({}, {lastActiveAt: new Date()});
}
next();
});
// ...
MyModel.update({/* ... */}, {active: true});
它可以工作,但我不喜欢 _compiledUpdate
中的下划线。是否有推荐的方法来访问 pre('update') 中间件中的查询?
您可以尝试this.getUpdate()
方法获取更新查询:
MySchema.pre('update', function(next) {
if (this.getUpdate().$set.active) {
this.update({}, {lastActiveAt: new Date()});
}
next();
});
每次使用 {active: true}
更新模型时,我都想更改 lastActiveAt
字段。我有这样的东西:
MySchema.pre('update', function(next) {
if (this._compiledUpdate.$set.active) {
this.update({}, {lastActiveAt: new Date()});
}
next();
});
// ...
MyModel.update({/* ... */}, {active: true});
它可以工作,但我不喜欢 _compiledUpdate
中的下划线。是否有推荐的方法来访问 pre('update') 中间件中的查询?
您可以尝试this.getUpdate()
方法获取更新查询:
MySchema.pre('update', function(next) {
if (this.getUpdate().$set.active) {
this.update({}, {lastActiveAt: new Date()});
}
next();
});