【问题标题】:How to iterate by batches in MongoDB?如何在 MongoDB 中按批次进行迭代?
【发布时间】:2016-06-29 21:13:19
【问题描述】:

我有这个函数可以处理开始日期和结束日期之间的数字。问题是,如果我喜欢大量数字(例如,超过 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;
}

【问题讨论】:

    标签: arrays mongodb collections


    【解决方案1】:

    MongoDB cursors 提供切片索引,但您需要另外编写一个连续创建批次的函数。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-21
      • 2011-02-09
      • 2016-08-12
      • 2015-02-22
      • 1970-01-01
      • 2019-08-31
      • 2018-10-01
      • 1970-01-01
      相关资源
      最近更新 更多