我有一个定期的cron作业,它在mongodb先前执行并对其进行处理之后,从mongodb的集合中获取所有新文档。现在,文档数量变得太大,单个脚本无法处理。 因此,我必须使用多线程。但是问题是,多个线程无法获取和处理单个文档。
那么将单个查找操作拆分为多个线程的最佳实践是什么。
注意:线程可以位于单独的计算机上,并且收集的大小每天都在变化
答案 0 :(得分:0)
Change Streams(在Mongo 3.6及更高版本上可用)允许您跟踪数据更改并在有更新时运行所需的任何脚本。这样可以进行完全实时的更新。
mongoexport允许基于查询快速转储集合中的数据。
如果您的脚本无法跟上进度,则最佳实践是将文档放入队列中,并让工作人员将文档从队列中移出。