我正在尝试使用新的不稳定版本的 mongoose >4.0.0 来验证更新查询。
说我想使用以下查询更新架构
schema.update({_id:'blah'},{a:'blah'},function(err){
//do your thing
})
所以可以说我有以下架构,
var schema = new Schema({
a:{type:String}
});
schema.pre('update',function(next){
var findQuery=this._conditions; // gives {_id:'blah'}
// how do i get {a:'blah'}????
next();
});
如何在预中间件中获取 {set:{a:'blah'}} 的更新查询,以便在执行更新之前进行一些检查?
或者我知道可以在 post 中间件中访问更新查询,在
schema.post('update',function(){
var findQuery=this._conditions; // gives {_id:'blah'}
var updateQuery=this._update; //gives {$set:{a:'blah'}}
next();
});
但这为时已晚,我需要在预中间件中进行检查,然后再实际更新数据库。
我尝试查看 pre 中间件的“this”对象,但在任何地方都找不到 updateQuery 对象,并且 this._update 在 pre 中间件中未定义。
有没有办法做到这一点?谢谢