乐闻世界logo
搜索文章和话题

Mongoose 如何自动添加 created at 和 updated at 字段?

1个答案

1

当您在Mongoose中定义模式时,created_atupdated_at字段通常用于跟踪记录的创建和最后更新时间。要在Mongoose中添加这两个字段,您可以使用内置的timestamps选项,它会自动为您的模式添加这两个字段。以下是一个如何在Mongoose模式中实现它的示例:

javascript
const 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自动为每个模式实例添加createdAtupdatedAt字段。当您创建一个新的文档时,Mongoose会自动设置createdAtupdatedAt字段的值为当前时间戳。当您更新文档时,只有updatedAt字段会被更新为最新的时间戳。

默认情况下,这些字段被命名为createdAtupdatedAt。如果您想要自定义这些字段的名称,可以通过传递一个包含createdAtupdatedAt属性的对象来实现:

javascript
const exampleSchema = new Schema({ // 模式的其他字段 name: { type: String, required: true }, description: { type: String } }, { timestamps: { createdAt: 'created_at', updatedAt: 'updated_at' } // 自定义字段名称 });

通过使用timestamps选项,您可以确保每次创建或更新文档时,这些字段都会自动得到处理,这样可以在不增加额外代码的情况下轻松跟踪文档的历史。

2024年6月29日 12:07 回复

你的答案