Приетият отговор работи много добре. Може да се използва и алтернативен синтаксис, като сетерът е вграден в дефиницията на схемата:
var Person = new mongoose.Schema({
name: {
type: String,
set: function(name) {
this._previousName = this.name;
return name;
}
});
Person.pre('save', function (next) {
var previousName = this._previousName;
if(someCondition) {
...
}
next();
});