首页 > 解决方案 > MongoDB中的TTL索引是否有替代方案,不会永久删除文档?

问题描述

我正在使用 Node.JS / MongoDB 构建一个工作板。用户购买工作列表后,将其添加到数据库中,并使用 TTL 索引在 30 天后删除。我想知道是否有办法更改字段与删除整个文档?我之所以这么问,是因为我想让用户选择在到期后“更新”他们的列表。解决这个问题的最佳方法是什么?

标签: javascriptnode.jsmongodb

解决方案


您可以添加一个名为“renewalDate”的字段,将其初始化为创建日期,然后查询从现在开始的renewalDate 小于30 天的项目以显示项目。然后,要“更新”列表,您只需将更新日期设置为更当前的日期,以便它再次出现在查询中。

然后,您可以运行定期任务(每晚一次或每周一次)以永久删除任何旧到甚至不再符合续订条件的文档。或者您可以使用 TTL 功能来管理它。


推荐阅读