使用非粒度排序顺序进行无数分页

时间:2012-09-10 20:41:02

标签: sql mongodb

我有一个快速变化的数据集,我正在实现无数的next / prev导航。数据变化足够快,基于数字偏移的查询不可靠。这里的传统解决方案是基于排序字段来偏移查询(例如:created_at> X)。但是,如果主要排序顺序不是非常精细,那么这种方法效果不佳。我有一个想法就是做一些事情:

... WHERE (nongranular = X AND granular > Y) OR nongranular > X ORDER BY ...

但是,我对在MongoDB中实现上述伪查询感到不满意:它基本上是2个单独的查询。

当主要排序不是粒度但次要排序顺序是粒度时,是否有更优雅的方法来实现有效的无数分页查询?

1 个答案:

答案 0 :(得分:0)

如果您使用的是MongoDB,则可以使用_id: {$gt: last_bson_id}The most significant bits of a BSON ID are a timestamp,最低有效位是序列号,可以轻松解决任何粒度问题。