如何在MongoDB中按批次进行迭代?

时间:2016-06-29 21:13:19

标签: arrays mongodb collections

我有这个函数可以在开始日期和结束日期之间填充数字。问题是,如果我喜欢大量的数字(例如,超过100万个数字),那么我想批量处理mongodb集合以更有效地阅读。此代码生成100个批次,但如何遍历批次?我怎么能看到有多少批次?例如,如果每5个批次,我想做一些不同的事情,我将如何实现这一目标?感谢。

function someFunc(start, end) {
  let batches = db.collection('my collection').find({
    $and: [
      { number: { $gte: start } },
      { number: { $lte: end } }
    ]
  })
  .batchSize(100)
  .toArrayAsync()
  .then(messages => {//do stuff});

  return batches;
}

1 个答案:

答案 0 :(得分:0)

MongoDB cursors提供了一个切片索引,但是您可能需要编写一个连续创建批处理的函数。

有一个batch_size()方法,但是您仍然需要遍历每个项目。此功能有助于提高性能,并减少往返服务器的次数。