我有这个函数可以在开始日期和结束日期之间填充数字。问题是,如果我喜欢大量的数字(例如,超过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;
}
答案 0 :(得分:0)
MongoDB cursors提供了一个切片索引,但是您可能需要编写一个连续创建批处理的函数。
有一个batch_size()
方法,但是您仍然需要遍历每个项目。此功能有助于提高性能,并减少往返服务器的次数。