я создал схему для пользователя, как это:Mongoose виртуальное поле не обновляется
var schema = new Schema({
username: {
type: String,
unique: true,
required: true
},
hashedPassword: {
type: String,
required: true
},
salt: {
type: String,
required: true
}
});
schema.virtual('password')
.set(function(password) {
this._plainPassword = password;
this.salt = Math.random() + '';
this.hashedPassword = this.encryptPassword(password);
})
.get(function() { return this._plainPassword; });
schema.methods.encryptPassword = function(password) {
return crypto.createHmac('sha1', this.salt).update(password).digest('hex');
};
то, что я пытаюсь изменить пароль, используя два подхода:
работа хороший
User.findById ('userId ..', function (err, user) { user.password = '456'; user.save (cb); })
Почему этот подход не работает?
User.findByIdAndUpdate ('идентификатор пользователя', {$ множество: {пароль: '456'}}, центибар)