gpt4 book ai didi

mongodb - mongodb文档更新后什么时候过期?

转载 作者:IT老高 更新时间:2023-10-28 13:13:28 28 4
gpt4 key购买 nike

我在 mongodb 中有一组文档,在日期类型索引上设置了 expireAfterSeconds 属性。

为了争论,文档设置为一小时后过期。

当我更新此集合中的文档时,会发生以下哪一种情况?

a)文档将在原始创建时间后一小时过期。

b)文档将在更新时间后一小时过期。

c)文档将在索引变量的时间后一小时过期,无论是什么时间。

d)以上都不是

我认为是c,但找不到引用来确认。我对么?这是在哪里记录的?

[编辑]:为了澄清,情况是我正在存储密码重置代码(应该过期。)如果请求新代码,我希望旧代码停止工作。但这并不是很相关,因为我可以通过简单地删除旧事务来确保始终尊重我想要的行为。这个问题不是关于我当前的问题,而是关于 Mongo 的行为。

最佳答案

正确答案是c)

expireAfterSeconds 属性始终需要包含 BSON 日期的字段的索引,因为此日期字段的内容用于选择要删除的条目。

当您想要更新文档以重置生存时间时,还将索引日期字段更新为当前时间。

如果您希望更新不影响 TTL,请不要更新日期。

但是,请记住 expireAfterSeconds 并不能保证立即删除文档。删除由每分钟运行的后台作业完成。该作业是低优先级的,可以在当前负载高时被 MongoDB 推迟。因此,当过期时间精确到秒对您的用例很重要时,您应该在应用程序级别添加额外的检查。

这里记录了此功能:http://docs.mongodb.org/manual/tutorial/expire-data/

关于mongodb - mongodb文档更新后什么时候过期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12351785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com