有没有其他方法可以在给定时间后删除猫鼬中的数据

Posted

技术标签:

【中文标题】有没有其他方法可以在给定时间后删除猫鼬中的数据【英文标题】:Is there any other method for deleting a data in mongoose after a given time 【发布时间】:2020-07-09 00:26:43 【问题描述】:
const notificationSchema = mongoose.Schema(
    type:
        type: String
    ,

    message:
       type: String
    ,
    userId:
        type: String,
        required: true,

    ,
    timestamp:
        type: Date,
        default: new Date()

    ,
    expireAt: 
        type: Date,
        default: Date.now,
        index:  expires: '5m' ,
      ,
)

我的数据没有在猫鼬中自动删除,我的模型有问题吗?这是我的模型结构。任何人都可以帮忙

【问题讨论】:

我不熟悉猫鼬,但我认为index: expires: '5m' 是错误的。检查TTL Indexs的语法 请看这里:***.com/questions/50674058/… 也可以在这里查看:mongoosejs.com/docs/api.html#schematype_SchemaType-index 【参考方案1】:
const notificationSchema = mongoose.Schema(
type:
    type: String
,

message:
   type: String
,
userId:
    type: String,
    required: true,
,
 
  timestamps: true

);

notificationSchema.index(createdAt: 1,expireAfterSeconds: 3600);

集合中的每个字段都会在 3600 秒后被删除

【讨论】:

【参考方案2】:

有几种方法,但最让我想到的是 TTL。

“TTL 索引是特殊的单字段索引,MongoDB 可以使用它在一定时间或特定时钟时间后自动从集合中删除文档。”

在此处了解更多信息 > https://docs.mongodb.com/manual/core/index-ttl/

对于猫鼬 > https://github.com/mongoosejs/mongoose-ttl

【讨论】:

以上是关于有没有其他方法可以在给定时间后删除猫鼬中的数据的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬中的保存功能不起作用

如何删除猫鼬中的Many

删除猫鼬中的评论父母

从猫鼬中的数组中删除元素

测试后在猫鼬中删除所有连接的数据库

Mockgoose:如何模拟猫鼬中的错误?