使用 mongoose 在 mongodb 中设置集合的到期时间

新手上路,请多包涵

以下是可通过 mongo 终端设置集合到期时间(TTL)的命令:

 db.log.events.ensureIndex( { "status": 1 }, { expireAfterSeconds: 3600 } )

如何使用 mongoose 从 Node.js 中的代码执行此操作?

原文由 Amanda G 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 926
1 个回答

在 Mongoose 中,您通过该字段的模式定义中的 expires 属性在 Date 字段上创建 TTL 索引:

 // expire docs 3600 seconds after createdAt
new Schema({ createdAt: { type: Date, expires: 3600 }});

注意:

  • MongoDB 的数据过期任务每分钟运行一次,因此过期的文档可能会在过期后持续一分钟。
  • 此功能需要 MongoDB 2.2 或更高版本。
  • 您可以在创建文档时将 createdAt 设置为当前时间,或者添加 default 按照 此处 的建议为您完成。
    • { createdAt: { type: Date, expires: 3600, default: Date.now }}

原文由 JohnnyHK 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题