Один из способов сделать это - использовать Mongoose Middleware и обновить поле предварительного сохранения.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//schema
var SomethingSchema = new Schema({
text: {type: String},
createdAt: {type: Date, default: Date.now},
updatedAt: {type: Date, default: Date.now}
});
//middle ware in serial
SomethingSchema.pre('save', function preSave(next){
var something = this;
something.updatedAt(Date.now());
next();
});
Однако кажется, что промежуточное программное обеспечение не всегда вызывается:
Примечания по findAndUpdate ()
pre
и post
не вызываются для операций обновления, выполняемых непосредственно в базе данных, включая Model.update
, .findByIdAndUpdate
, .findOneAndUpdate
, .findOneAndRemove
и .findByIdAndRemove
.order для использования pre
или post
промежуточное программное обеспечение, вы должны find()
документ и вызвать функции init
, validate
, save
или remove
документа. См. объяснение .
Обновление: См. Этот вопрос " добавить поля create_at и updated_at в схемы mongoose "