2016-03-22 5 views
1

У меня есть предварительный сохранить крюк для шифрования password поля User схемы, как:Условно функция пропуска мангуста крючок

var schema = new mongoose.Schema({ 
    username: 'string', 
    password: 'string' 
}); 

schema.pre('save', encrptPasswordHook); 
schema.pre('update', encrptPasswordHook); 
schema.pre('findOneAndUpdate', encrptPasswordHook); 
... 

По этому пути, я зашифрованный строку пароля в моей базе данных каждый раз, когда User создаваемых или обновлено.

Теперь у меня есть файл JSON старых User данных с зашифрованным паролем. Я хочу использовать эту модель User для импорта файла JSON в мою базу данных.

Как избежать повторного сохранения крюка для повторного шифрования пароля?

ответ

2

Вы можете использовать User.collection.insert() обойти все Mongoose валидации (тип вставленных данных не будет проверяться) и крюки, он использует драйвер MongoDB непосредственно:

var UserSchema = new mongoose.Schema({ 
    username: 'string', 
    password: 'string' 
}); 

var User = mongoose.model('User', UserSchema); 

User.collection.insert({ 
    username: 'Some Name', 
    password: 'The Encrypted Password' 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^