mongodb - MongoDB 文件和集合清除
问题描述
我们使用 MongoDB 文件和块来存储大小超过 16 MB 的图像和 pdf 文件。我们需要在一天结束时清除这些数据。
我们发现 MongoDB 提供了一个内置功能来使用 TTL 索引删除文档。因此使用 files 集合的 uploadDate 列定义了 TTL 索引。它运行良好并从文件集合中删除记录。但是块集合中的相关记录仍未删除,这是有问题的。
另一种选择是我们考虑在块集合中添加 uploadDate 字段并在那里定义 TTL 索引,但找不到实现它的方法。我看到我们可以在文件集合中添加元数据字段,但没有找到在块集合中执行此操作的方法。
我们讨论的另一个选项是 - 因为我们有一个 spring boot 微服务,我们可以有一个 spring 调度程序以定义的时间间隔调用并调用一个服务方法,该方法将调用 delete() gridFS API 以删除过期文档。但是由于我们可以使用一个公共数据库来拥有这个微服务的多个实例,那么每个实例最终都会为同样的事情运行自己的调度程序服务,这似乎是不正确的。
如果您遇到这种情况并且知道实现这一目标,那么这将对我有所帮助。
谢谢
解决方案
推荐阅读
- mongodb - 如何检查mongodb数据中是否存在字段
- .htaccess - 从根目录重定向到子目录后如何从子目录运行opencart
- docker - 使用 scp 在两个 docker 容器之间复制文件
- hyperledger-fabric - 在超级账本结构的 chaicode 中执行大量事务时超时到期
- c# - 如何使用 C# 使用 ALSA 在 Linux 中获取和设置音量?
- javascript - Accordion 的 Active Title 属性无法正常工作
- python - 如何将默认值从数据库传递到 wagtail 中的 mapfield 面板
- regex - Perl 正则表达式将多行转换为单行
- flutter - 在堆栈中覆盖一个小部件并更改其可见性 n 按钮单击
- html - 如何以不同的顺序显示css网格?