javascript - MongoDB中的TTL索引是否有替代方案,不会永久删除文档?
问题描述
我正在使用 Node.JS / MongoDB 构建一个工作板。用户购买工作列表后,将其添加到数据库中,并使用 TTL 索引在 30 天后删除。我想知道是否有办法更改字段与删除整个文档?我之所以这么问,是因为我想让用户选择在到期后“更新”他们的列表。解决这个问题的最佳方法是什么?
解决方案
您可以添加一个名为“renewalDate”的字段,将其初始化为创建日期,然后查询从现在开始的renewalDate 小于30 天的项目以显示项目。然后,要“更新”列表,您只需将更新日期设置为更当前的日期,以便它再次出现在查询中。
然后,您可以运行定期任务(每晚一次或每周一次)以永久删除任何旧到甚至不再符合续订条件的文档。或者您可以使用 TTL 功能来管理它。
推荐阅读
- android - 如何从文件的 URI 中获取 base64?
- c# - 如何编写 HTTPClient 请求以从 WPF 应用程序访问 ASP.Net Core Web App 方法?
- python - 在 SCRAPY 中形成 XPATH 选择器
- java - 请帮助在 Java 代码中阅读此抽象数据类型
- parallel-processing - 在并行循环中,如果多个线程的条件为真而不是第一次遇到
- ios - 用作分页加载器时的 Gif,有时不显示在图像视图中
- c# - C# 中的自定义自动属性
- export - 如何使用 IronPython 脚本仅导出 Spotfire Selected 列?
- html - 隐藏在粘性导航栏后面的文本 (HTML/CSS)
- angular - Primeng P-calendar issue (UTC)