在 mongoDB 的特定时间后自动删除文档

Auto delete a document after specific time in mongoDB

我想在指定时间后删除文档。就像如果用户选择 24 小时那么它应该在 24 小时后自动删除。我在 mongo 中听说过 TTL,但在那儿,我必须在模式中指定一个时间,它对所有文档都是相同的。

有没有办法动态设置每个文档的过期时间?

本身没有支持此功能的系统,一个建议是为每个要删除的文档添加一个日期属性,并维护一个作业来检查具有此 attribute/if 属性值的文档当前时间已过,若已过则删除文档

我们可以添加一个字段,如 expireAt,它将包含到期日期。现在添加这样的 TTL 索引-

db.dbname.createIndex({expireAt:1},{expireAfterSeconds:0})

现在只需在每个带有到期日期的文档中添加 expireAt 字段。当当前时间到达到期日期时,它会auto-remove。