Mongoose, похоже, скрывает мое поле timestamp, когда я устанавливаю его в pre 'save' hook. Любая идея почему?Почему Mongoose скрывает мое поле?
У меня есть эта схема:
var dpsSchema = new Schema({
timestamp: Date,
_loaded_schedules: [{type: Number, ref: 'prun_schedules'}]
})
dpsSchema.pre('save', function(next){
this.timestamp = new Date();
next();
})
и я запускаю этот код:
var Dpm_model = mongoose.model('daily_production_meta', dpm_schema);
var pm = new Dpm_model();
pm.save();
setTimeout(console.log(pm), 2000);
Полученный лог консоли выглядит следующим образом:
{ _id: 5871410c08b91cfd82124656,
_loaded_schedules: [] }
Но когда я вхожу в MongoDB через терминал и проверить этот документ, я вижу поле timestamp!
Почему?
'.save()' работает асинхронно, поэтому, возможно, 2 секунды недостаточно. Попробуйте '.save(), затем (doc => console.log (doc);' Могу ли я спросить, почему вы используете эту временную метку? Если вы хотите сохранить, когда документ был создан или модифицирован, есть встроенная опция для этого: http://mongoosejs.com/docs/guide.html#timestamps – Camo