Saya akan mengatakan ini adalah cara untuk pergi. sebelum middleware sangat sesuai dengan kebutuhan ini, dan saya tidak tahu cara lain. Sebenarnya inilah yang saya lakukan di semua skema saya.
Yang perlu Anda ketahui adalah perbedaan antara dokumen dan kueri middleware.Dokumen middleware dieksekusi untuk init
, validate
, save
dan remove
operasi. Di sana, this
mengacu pada dokumen:
schema.pre('save', function(next) {
this.increment();
return next();
});
Kueri middleware dieksekusi untuk count
, find
, findOne
, findOneAndRemove
, findOneAndUpdate
dan update
operasi. Di sana, this
mengacu pada objek kueri. Memperbarui bidang versi untuk operasi tersebut akan terlihat seperti ini:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Sumber:dokumentasi luwak .