我正在尝试使用mongoose> 4.0.0的新不稳定版本来验证更新查询。在猫鼬pre中间件中,我如何访问更新查询?
说,我想用下面的查询
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();
});
我如何得到{集的更新查询更新模式: {a:'blah'}}在执行更新之前我可以做一些检查吗?
或者我知道更新查询可以在后中间件进行访问,在
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中间件中未定义。
有没有办法做到这一点? 谢谢