When will a mongodb document expire after it is updated?

那年仲夏 提交于 2019-12-03 06:01:49

The correct answer is c)

The expireAfterSeconds property always requires an index on a field which contains a BSON date, because the content of this date field is used to select entries for removal.

When you want an update of a document to reset the time-to-live, also update the indexed date field to the current time.

When you want an update to not affect the TTL, just don't update the date.

However, keep in mind that expireAfterSeconds doesn't guarantee immediate deletion of the document. The deletions are done by a background job which runs every minute. This job is low-priority and can be postponed by MongoDB when the current load is high. So when it's important for your use-case that the expire times are respected accurately to the second, you should add an additional check on the application level.

This feature is documented here: http://docs.mongodb.org/manual/tutorial/expire-data/

If you don't want to rely on mongo demon process for expiring the collection, then better to create an additional createdOn field on collection and compare it with the current timestamp to decide whether to use that document or not.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!