arrays - 如何在MongoDB中批量迭代?

标签 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;
}

最佳答案

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

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

关于arrays - 如何在MongoDB中批量迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38110142/

相关文章:

python - 将列表转换为 json 对象

java - 如何使用for循环在java中的数组中存储多个电影标题

spring - 如何从 spring-data mongodb 扩展 SimpleMongoRepository?

java - 将String ArrayList转换为自己定义的对象的ArrayList

java - LinkedHashSet迭代不按升序排列?

javascript - 不理解使用 each 和 map 的循环

PHP 像素图组效率

javascript - MongoDB - 使用聚合管道进行评论赞成/反对

mongodb - 查询 MongoDB Compass 中的二进制字段

java - 迭代列表上编译失败