📜  createdAt expires mongoose - Javascript (1)

📅  最后修改于: 2023-12-03 15:14:16.966000             🧑  作者: Mango

使用createdAt和expires插件实现数据存储过期

在Node.js中使用Mongoose时,可以使用Mongoose的内置插件createdAtexpires来实现数据存储过期的功能。

createdAt插件可以在保存MongoDB文档时自动添加创建时间,而expires插件则可在指定时间后自动删除文档。下面是如何在Mongoose中使用这两个插件的步骤。

步骤一:在模型中引入插件

在Mongoose模型中引入需要使用的插件。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

// 引入插件
const createdAt = require('mongoose-createdat');
const expires = require('mongoose-expires');

// 定义模型
const TestSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  age: {
    type: Number,
    required: true
  }
});

// 在模型中使用插件
TestSchema.plugin(createdAt);
TestSchema.plugin(expires);
步骤二:配置插件选项

现在需要将插件的选项传递给模型。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

// 引入插件
const createdAt = require('mongoose-createdat');
const expires = require('mongoose-expires');

// 定义模型
const TestSchema = new Schema({
  name: {
    type: String,
    required: true
  },
  age: {
    type: Number,
    required: true
  }
});

// 在模型中使用插件
TestSchema.plugin(createdAt, { index: true });
TestSchema.plugin(expires, { expires: '1d' });

在这个例子中,createdAt插件的index选项启用了自动索引而expires插件的expires选项将文档设置为一天后过期。

步骤三:在MongoDB中查看插件功能

现在可以将模型用在Node.js应用程序中,并将文档保存在MongoDB数据库中。可以使用MongoDB Shell检查插件是否正确执行。使用find命令查询文档将显示自动生成的createdAt字段和expires索引。

mongo
> show dbs
> use myTestDatabase
> db.createCollection('tests')
> db.tests.insert({ name: 'Test', age: 30 })
> db.tests.find()

查询结果应该类似于以下示例:

{ "_id" : ObjectId("6019f922f0e3151d18140889"), "name" : "Test", "age" : 30, "createdAt" : ISODate("2021-02-01T23:36:50.131Z") }

如果文档的过期时间已过期,则可以使用相同的查询命令获得查询结果为空。

以上是使用Mongoose内置插件createdAtexpires来实现数据存储过期的步骤和代码示例。