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