是否有一种方法可以将created_at和updated_at字段添加到猫鼬模式中,而不必在每次调用new MyModel()时传递它们?
created_at字段将是一个日期,仅在创建文档时添加。
每当对文档调用save()时,updated_at字段将被更新为新的日期。
我已经在我的模式中尝试了这一点,但除非我显式地添加它,否则字段不会显示:
var ItemSchema = new Schema({
name : { type: String, required: true, trim: true },
created_at : { type: Date, required: true, default: Date.now }
});
使用函数返回计算出的默认值:
var ItemSchema = new Schema({
name: {
type: String,
required: true,
trim: true
},
created_at: {
type: Date,
default: function(){
return Date.now();
}
},
updated_at: {
type: Date,
default: function(){
return Date.now();
}
}
});
ItemSchema.pre('save', function(done) {
this.updated_at = Date.now();
done();
});
如果你使用nestjs和@Schema装饰器,你可以实现这样的效果:
@Schema({
timestamps: true,
})
时间戳选项告诉猫鼬将createdAt和updatedAt字段分配给你的模式。分配的类型是Date。
默认情况下,字段的名称是createdAt和updatedAt。
通过设置时间戳自定义字段名。createdAt和timestamp . updatedat。