Mongodb 获取上一页';s查询DocumentDB时使用skip和limit时的结果

Mongodb 获取上一页';s查询DocumentDB时使用skip和limit时的结果,mongodb,aws-documentdb,Mongodb,Aws Documentdb,我收集了大约800000份文件,我正试图一次取5000份 运行以下代码时: const CHUNK\u SIZE=5000; 设skip=0; 做{ matches=wait dbClient .集合(集合名称) .find({}) .skip(skip) .限制(块大小) .toArray(); //…一些处理 跳过+=块大小; }while(匹配.长度) 在大约30次迭代之后,我开始获取在上一次迭代中已经收到的文档 我这里缺少什么?如评论中所述,您必须对查询应用.sort()。 要在不增加

我收集了大约800000份文件,我正试图一次取5000份

运行以下代码时:

const CHUNK\u SIZE=5000;
设skip=0;
做{
matches=wait dbClient
.集合(集合名称)
.find({})
.skip(skip)
.限制(块大小)
.toArray();
//…一些处理
跳过+=块大小;
}while(匹配.长度)
在大约30次迭代之后,我开始获取在上一次迭代中已经收到的文档


我这里缺少什么?

如评论中所述,您必须对查询应用
.sort()
。 要在不增加太多性能开销的情况下执行此操作,最简单的方法是在
\u id上执行此操作,例如

.sort(
    { 
        "_id" : 1.0
    }
)
MongoDB或AmazonDocumentDB风格都不能保证没有它的隐式结果排序


我的猜测是向查询中添加排序。我尝试过这样做,但对如此大的集合进行排序需要花费很长时间,每次我
find()
,我都必须运行排序,所以这不是一个选项…按说明添加排序。您尝试过对标识符应用排序吗?不,我将尝试按id排序