Spring 数据 MongoDB 排序未按预期工作

Spring Data MongoDB Sorting not working as expected

样本Mongodb合集

[
{"sno":4,"data":"data-4"},
{"sno":3,"data":"data-3"},
{"sno":2,"data":"data-2"},
{"sno":1,"data":"data-1"},
]

Spring数据代码:

PageRequest pageable = new PageRequest(page--, size);
return dao.findAll(pageable);

如果我将页面作为 1 并将大小作为 1 传递,我将得到以下结果,这是正确的。

{"sno":4,"data":"data-4"}

如果我将页面作为 1 并将大小作为 2 传递,请参见下面 预期:

{"sno":4,"data":"data-4"}
{"sno":3,"data":"data-3"}

实际: {"sno":3,"data":"data-3"} {"sno":2,"data":"data-2"}

它跳过了第一条记录,看起来它是 Spring 实施 mongodb 数据的问题。我在可分页中尝试使用显式 Sort(DESC,"sno"),结果仍然相同。

有人遇到过这个问题吗?

实际上page0开始。

我已经尝试过与您相同的数据,实际上如果我调用:

PageRequest pageable = new PageRequest(0, 1, new Sort(Sort.Direction.DESC, "sno"));
dao.findAll(pageable);

我会得到:

{"sno":4,"data":"data-4"}

同样,如果您需要前两条记录,只需调用

new PageRequest(0, 2, new Sort(Sort.Direction.DESC, "sno"));