Tôi muốn nói đây là con đường để đi. trước phần mềm trung gian phù hợp chính xác nhu cầu này, và tôi không biết cách nào khác. Trên thực tế, đây là những gì tôi đang làm trong tất cả các lược đồ của mình.
Tuy nhiên, điều bạn cần lưu ý là sự khác biệt giữa tài liệu và truy vấn phần mềm trung gian. Tài liệu phần mềm trung gian được thực thi cho init
, validate
, save
và remove
các hoạt động. Đây, this
đề cập đến tài liệu:
schema.pre('save', function(next) {
this.increment();
return next();
});
Truy vấn phần mềm trung gian được thực thi cho count
, find
, findOne
, findOneAndRemove
, findOneAndUpdate
và update
các hoạt động. Đây, this
đề cập đến đối tượng truy vấn. Cập nhật trường phiên bản cho các hoạt động như vậy sẽ trông giống như sau:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Nguồn: tài liệu mongoose .