从特定日期开始在MongoDB中替换大量文档

时间:2019-03-19 10:34:44

标签: python mongodb celery

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

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

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

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

我想到的第二个选择是每个日期(使用Pandas数据框)将即将到来的新数据拆分为多个数据块,然后执行“删除”然后“插入该日期,然后迭代该过程直到今天。”相同,但块较小。

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

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

非常感谢

0 个答案:

没有答案