mongoDB下一批(获取多个文档)

时间:2017-11-01 14:05:13

标签: mongodb cursor

我尝试使用mongoDB进行数千/数百万个文档的分页, 据我所知,对于这些数据,我需要使用Cursor。

如果我想在每次通话中获得10个文件,我该怎么办?

我试着这样做:

var cursor = db.collection('person').find({});
cursor.batchSize(10);

但我现在应该运行什么命令来获取接下来的10个文件? 如果我使用cursor.next(),我只会得到下一个文件。

我需要一个命令,所以当我运行它一次获得前10个文档时,当我再次运行相同的命令时,我将获得接下来的10个文档(文档11-20)。

如果光标不能像那样工作,请解释我该怎么做(如果代码应该包含在内,Javascript会更好)

由于

1 个答案:

答案 0 :(得分:1)

所以你只是尝试使用分页。为此你可以使用查询限制(并且不使用游标):

//Page 1
db. person.find().limit(pageSize);
//Find the id of the last document in this page
last_id = ...

//Page 2
users = db. person.find({'_id'> last_id}).limit(10);
//Update the last id with the id of the last document in this page
last_id = ...

//Page 3
users = db. person.find({'_id'> last_id}).limit(20);
last_id = ...

看看Pagination, Approach 2。还有其他选择可以达到分页。