如何在mongodb中有效分页

时间:2016-07-19 20:59:48

标签: mongodb sorting mongoose database

我想按字段x对所有文档进行排序(多个文档在此字段上具有相同的值)。然后,每当我按下" next",它就会加载另外10个文档。

如果多个文档具有相同值,则可以在以任何顺序显示它们,这无关紧要。

由于skip()在大型数据集上效率低下,这有效吗?不需要分页编号,只能无限滚动。

1 个答案:

答案 0 :(得分:0)

如果您不需要分页编号,那么您可以只使用单调增加的唯一id值;例如_idObjectId()

使用你的例子:

/* Value of first scroll record, and to be updated every iteration */
var current_id;

var scroll_size = 10; 

db.collection.find({_id: {$lt: current_id}}).
                    limit(scroll_size).
                    sort({
                           _id: -1, 
                             x: 1   // Depending on your use case
                    });

上面的示例将为您提供最新记录。根据您的使用情况,您必须决定如何处理新插入的文档。

如果您使用的字段不同于_id,请确保在字段中添加适当的indexes