MongoDB分页的范围查询
- 论坛
- MongoDB分页的范围查询
31 浏览
MongoDB分页的范围查询
我想在MongoDB上实现分页功能。对于我的范围查询,我考虑使用ObjectIDs:
db.tweets.find({ _id: { $lt: maxID } }, { limit: 50 })
然而,根据文档,ObjectID的结构意味着"ObjectId值不代表严格的插入顺序":
ObjectId值与生成时间的顺序关系在同一秒内不是严格的。 如果多个系统、多个进程或同一系统上的多个线程在同一秒内生成值,则ObjectId值不代表严格的插入顺序。客户端之间的时钟偏差也可能导致值的非严格排序,因为客户端驱动程序生成ObjectId值,而不是mongod进程。
然后,我考虑使用时间戳进行查询:
db.tweets.find({ created: { $lt: maxDate } }, { limit: 50 })
然而,并不能保证日期是唯一的 - 很可能在同一秒内创建了两个文档。这意味着在分页时可能会错过一些文档。
是否有任何类型的范围查询可以提供更稳定的结果?