MongoDB文档更新时,TTL索引是否会刷新?
MongoDB TTL索引更新文档后的过期时间问题
TTL索引的过期时间是基于你创建索引时指定的日期字段来计算的,只有当这个日期字段被修改时,过期时间才会重新刷新。
回到你的场景:
- 假设你创建TTL索引时关联的是某个日期字段(比如
expireAt),初始文档里该字段设为当前时间+15分钟。 - 10分钟后你只更新了
name字段(从"James"改成"Other name"),并没有修改那个日期字段,那么TTL的过期时间不会变。 - 这种情况下,文档会在初始设置的15分钟到期时间点被删除,也就是更新后再过5分钟就会被删除。
如果想要刷新TTL过期时间,你需要在更新文档的同时,把TTL索引关联的日期字段也更新为当前时间+15分钟,这样文档才会在更新后的15分钟后被删除。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

