Бих казал, че това е пътят. Предпред междинният софтуер отговаря точно на тази нужда и не знам друг начин. Всъщност това е, което правя във всичките си схеми.
Това, което трябва да знаете обаче, е разликата между документ и заявка междинен софтуер.Документ междинният софтуер се изпълнява за init
, validate
, save
и remove
операции. Ето, this
препраща към документа:
schema.pre('save', function(next) {
this.increment();
return next();
});
Заявка междинен софтуер се изпълняват за count
, find
, findOne
, findOneAndRemove
, findOneAndUpdate
и update
операции. Ето, this
се отнася до обекта на заявката. Актуализирането на полето за версия за такива операции ще изглежда така:
schema.pre('update', function( next ) {
this.update({}, { $inc: { __v: 1 } }, next );
});
Източник:документация на mongoose .