当您在Mongoose中定义模式时,created_at
和updated_at
字段通常用于跟踪记录的创建和最后更新时间。要在Mongoose中添加这两个字段,您可以使用内置的timestamps
选项,它会自动为您的模式添加这两个字段。以下是一个如何在Mongoose模式中实现它的示例:
javascriptconst mongoose = require('mongoose'); const Schema = mongoose.Schema; // 定义模式 const exampleSchema = new Schema({ // 模式的其他字段 name: { type: String, required: true }, description: { type: String } // 您不需要显式添加created_at和updated_at字段 }, { timestamps: true // 这将会自动添加created_at和updated_at字段 }); // 创建模型 const ExampleModel = mongoose.model('Example', exampleSchema); module.exports = ExampleModel;
在这个例子中,timestamps
选项被设置为true
,这告诉Mongoose自动为每个模式实例添加createdAt
和updatedAt
字段。当您创建一个新的文档时,Mongoose会自动设置createdAt
和updatedAt
字段的值为当前时间戳。当您更新文档时,只有updatedAt
字段会被更新为最新的时间戳。
默认情况下,这些字段被命名为createdAt
和updatedAt
。如果您想要自定义这些字段的名称,可以通过传递一个包含createdAt
和updatedAt
属性的对象来实现:
javascriptconst exampleSchema = new Schema({ // 模式的其他字段 name: { type: String, required: true }, description: { type: String } }, { timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' } // 自定义字段名称 });
通过使用timestamps
选项,您可以确保每次创建或更新文档时,这些字段都会自动得到处理,这样可以在不增加额外代码的情况下轻松跟踪文档的历史。