我想按字段x
对所有文档进行排序(多个文档在此字段上具有相同的值)。然后,每当我按下" next",它就会加载另外10个文档。
如果多个文档具有相同值,则可以在以任何顺序显示它们,这无关紧要。
由于skip()
在大型数据集上效率低下,这有效吗?不需要分页编号,只能无限滚动。
答案 0 :(得分:0)
如果您不需要分页编号,那么您可以只使用单调增加的唯一id
值;例如_id
和ObjectId()。
使用你的例子:
/* 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。