我在试图理解你的问题时遇到了很大的问题。
据我所知,当用户刷新页面时,比如 6 小时后,它不仅应该显示那里的结果,还应该显示现在的结果。
正如@JohnnyHK 所说,MongoDB 会自然地进行“实时”排序,这就是这种情况,而 MongoDB,因为您的查询会给您返回正确的结果。
现在我认为您可能试图在这里解决的一个问题(问题需要大量澄清)是由于数据更改,_id
您最后看到的可能不再真正代表页码等,甚至不再代表信息的多样性,即你最后_id
看到的实际上是第 13 页的一半。
这些事情你可能会花费更多的时间和性能来尝试解决,而不仅仅是让用户了解他们已经 AFAK 很长时间了。
编辑
啊哈,我想我明白了你现在想要做什么,你试图通过同时获取页面和列表中的最后一项来偷偷摸摸。不幸的是,就像 SQL 一样,这是不可能的。即使排序像那样工作,排序也不会像它应该的那样运行,因为您只能在单个字段上以一种方式排序。
但是,为了将来参考,该sort()
函数正是游标上的函数,直到您通过开始迭代它来实际打开游标,sort()
多次调用只会覆盖游标属性。
恐怕这必须通过两个查询来完成,因此您首先获取您的页面,然后是客户端(我认为您正在寻找该页面的最大值)滚动记录以找到最后一个_id
或只是进行第二次查询得到最后一个_id
。它应该是超级杜帕快。