Tôi đang cố gắng sử dụng phiên bản không ổn định mới của trình đơn> 4.0.0 để xác thực các truy vấn cập nhật.Trong phần mềm trung gian mongoose, làm cách nào để truy cập vào truy vấn cập nhật?
nói rằng tôi muốn cập nhật một giản đồ bằng cách sử dụng truy vấn sau đây
schema.update({_id:'blah'},{a:'blah'},function(err){
//do your thing
})
nên cho phép nói rằng tôi có giản đồ sau,
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();
});
làm thế nào để tôi nhận được truy vấn cập nhật {thiết lập: {a: 'blah'}} trong phần mềm trung gian trước vì vậy tôi có thể thực hiện một số kiểm tra trước khi thực hiện cập nhật?
cách khác tôi biết rằng các truy vấn cập nhật có thể được truy cập trong bài middleware, trong
schema.post('update',function(){
var findQuery=this._conditions; // gives {_id:'blah'}
var updateQuery=this._update; //gives {$set:{a:'blah'}}
next();
});
nhưng thats quá muộn, tôi cần điều này trong các middleware trước để kiểm tra trước khi thực sự cập nhật db.
tôi đã thử xem xét đối tượng 'này' của phần mềm trung gian trước nhưng không thể tìm thấy đối tượng updateQuery ở bất kỳ đâu và this._update không được xác định trong phần mềm trung gian trước.
Có cách nào để thực hiện việc này không? cảm ơn