首页 > 解决方案 > 从 MongoDB 中的特定日期替换大量文档

问题描述

我按日期将业务/统计数据存储在不同的集合中。每天都有成千上万的行被插入。

在某些情况下,我的应用程序会获取或生成包含最近 20 天新值的信息,因此我需要使用这些日期的新值更新 MongoDB 中的旧信息。

我想到的第一个选项是通过按日期删除20 天前到现在的所有行,并使用 insertMany() 插入新数据。

这样做的问题是行数很大并且它阻塞了数据库,这有时会使我的工作进程死亡(这是一个 python celery 任务)。

我想到的第二个选项是将新传入的数据分成每个日期的块(使用 Pandas 数据帧),然后执行“删除”然后“插入该日期,并迭代该过程直到今天。这种方式是相同的,但在更小的块。

最后一个选项是个好主意吗?

有没有更好的方法来解决这类问题?

非常感谢

标签: pythonmongodbcelery

解决方案


推荐阅读