MongoDB - 游标是否批量从磁盘获取文件?

时间:2017-11-01 05:47:29

标签: mongodb mongodb-query cursor

我每24小时在我的mongo数据库上执行一次大型聚合操作(60m记录=> 6m记录)。为了防止我的服务器爆炸,我试图对聚合进行分页(一次约10,000条记录),然后我循环。

我可以使用游标.next()或使用.toArray()循环,然后循环遍历数组。从mongo文档(https://docs.mongodb.com/manual/tutorial/iterate-a-cursor)看来:

  • cursor将从服务器获取一批文档并将其存储到磁盘
  • 而.toArray()将迭代光标的文档并将其推入内存

我的问题是,当我使用cursor.next()时,它是从磁盘批量获取文件,还是一次获取一个文件?

在我想要一次循环10k条记录并将它们推送到另一个集合的情况下,.toArray()会更高效吗?文档说明.toArray()"消耗光标",引擎盖下是否一次从磁盘中提取一个文档?

由于

0 个答案:

没有答案