温馨提示×

mongodb过期时间怎么设置

小亿
589
2023-07-03 11:59:35
栏目: 云计算

在MongoDB中,可以使用TTL(Time To Live)索引来设置文档的过期时间。TTL索引是一种特殊类型的索引,它会自动删除具有指定过期时间的文档。

要设置TTL索引,可以使用以下步骤:

  1. 在要设置过期时间的字段上创建索引。例如,如果要在名为"createdAt"的字段上设置过期时间,则可以执行以下操作:
db.collection.createIndex({ "createdAt": 1 }, { expireAfterSeconds: 3600 })

上述命令将在"collection"集合上创建一个升序索引,并在指定的字段上设置过期时间为3600秒(1小时)。

  1. 插入或更新文档时,MongoDB会自动计算并设置过期时间。例如,如果插入一个文档如下:
db.collection.insertOne({ "createdAt": new Date() })

则该文档将在插入后的3600秒后过期,并被自动删除。

需要注意的是,TTL索引只对具有过期时间字段的文档起作用。如果文档没有过期时间字段,或者过期时间字段的值不是一个日期类型,则TTL索引不会生效。

另外,TTL索引不是实时删除过期文档的,而是在后台进程每60秒钟运行一次,删除过期的文档。因此,过期时间可能会有一定的延迟。

0