MongoDB:如何在连续查询中检索大量文档

时间:2016-05-18 13:36:33

标签: node.js mongodb web-services database-design database

这就是我想要实现的目标:

我有一个包含大量文档的集合。用户将查询某个字段,这将返回大量文档。 但出于带宽/处理原因,我不想获取所有文档并立即将它们发送给用户(浏览器)。

假设用户使用搜索字段发出GET请求。这将给出1000个结果。但我想只向用户发送前10个。然后用户会请求下一个10,依此类推。

有没有办法在Mongodb中实现这一目标?我可以使用某个计数器查询并在连续查询中递增它吗?

实现这种机制的好方法是什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

此处数字代表1,2,3,.....如果您给出数字= 1,则表示前10条记录。

db.students.find().skip(number > 0 ? ((number-1)*10) : 0).limit(10);
//first 10 records ,number = 1
db.students.find().skip(1 > 0 ? ((1-1)*10) : 0).limit(10);

//next  10 records ,number = 2
db.students.find().skip(2 > 0 ? ((2-1)*10) : 0).limit(10);

答案 1 :(得分:1)

MongoDB本身支持使用skip()和limit()命令进行分页操作。

//first 10 results -> page 1
collection.find().limit (10)

//next 10 results -> page 2
collection.find().skip(10).limit(10)

//next 10 results -> page 3
collection.find().skip(20).limit(10)