MongoDB 的 TTL 索引 (Time-To-Live Index) 是一种特殊的单字段索引,主要用于在指定时间后自动从集合中删除文档。 这对于处理临时数据(如日志、会话信息、验证码等)非常有用,无需开发人员编写额外的定时任务(Cron Job)来清理数据。 以下是关于 TTL 索引的详细指南: --- 1. 核心原理 基于时间字段: TTL 索引必须创建在包含 Date (BSON Date) 类型值的字段上。 后台线程: MongoDB 有一个后台线程(TTL Monitor),默认每 60 秒运行一次。它会扫描 TTL 索引,将文档中的时间字段值与当前时间进行比较,如果过期则删除该文档。 --- 2. 如何创建 TTL 索引 TTL 索引主要有两种使用模式: 模式 A:在创建后的固定时间段后过期 这是最常见的用法。例如,你希望文档在创建后 1 小时(3600秒)自动删除。 步骤: 1. 文档中需要有一个字段记录创建时间(例如 )。 2. 创建索引时指定 参数。 结果:文档将在 时间 + 3600 秒后被删除。 模式 B:在指定的具体时间点过期 如果你希望每个文档的过期...