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

vsaztqbk  于 2023-05-17  发布在  Go
关注(0)|答案(1)|浏览(140)

我试着用mongoDB对成千上万的文档进行分页,我知道对于这样的数据量,我需要使用游标。
如果我想在每次呼叫中获得10个文档,我该如何做?
我试着去做:

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

但是我现在应该运行什么命令来获取接下来的10个文档呢?如果我使用cursor.next(),我只得到1个下一个文档。
我需要一个命令,所以当我运行它时,一旦我得到前10个文档,当我再次运行相同的命令时,我将得到接下来的10个文档(文档11-20)。
如果游标不能像那样工作,请解释我应该怎么做(如果应该包括代码,Javascript将是最好)
谢谢

jv4diomz

jv4diomz1#

所以你就尝试使用分页。为此,您可以使用find query with limit(并且不使用游标):

//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。还存在其它选项来达到分页。

相关问题