0

我有一个快速变化的数据集,并且正在实施无数的下一个/上一个导航。数据变化得足够快,以至于基于数字偏移的查询不可靠。这里的传统解决方案是根据排序字段(例如:created_at > X)对查询进行偏移。但是,如果主要排序顺序不是很精细,那效果就不太好了。我的一个想法是做类似的事情:

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

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

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

4

1 回答 1

0

如果您使用的是 MongoDB,则可以使用_id: {$gt: last_bson_id}. BSON ID 的最高有效位是时间戳,最低有效位是序列号,可以轻松解决任何粒度问题。

于 2012-09-10T20:43:23.557 回答