2

在 Spring MVC 中对 MongoDB 查询结果进行排序的最佳方法是什么?我已经在 XML 文件中设置了所有映射,我可以在 Service 类中调用 myrepository.findAll() 就好了,它工作得很好。

如何对这些结果进行排序(例如按日期)和/或限制结果(例如按 3 等)。在 Mongo 本身中,只需执行 db.mycollection.find().sort({ postedAt : -1}); 就很容易了。或者只是抛出一个 .limit(3) 来获得前 3 个结果。

在 Spring MVC 环境中处理此问题的最佳方法是什么?

谢谢。

4

2 回答 2

2

如果您的myrepository对象是 MongoRepository 的一个实例,您可以使用 Pageable 对象作为参数调用findAll方法。

Pageable page = new PageRequest(0, 3, new Sort(Direction.DESC, "postedAt"));
myrepository.findAll(page);

实际上,这个方法来自 PagingAndSortingRepository 接口。

于 2012-12-17T18:52:26.527 回答
0

我觉得在 MongoDB 本身中进行排序很好,因为我们在那里有很多选择,例如你提到的方式将给出排序列表。您可以定义一个索引,它也可以使排序更容易。那么在 spring 环境中显示应该是不费吹灰之力的。此外,如果您有分页类型的用例,那么正如您所说,您可以在 mongo 层进行限制,并将那么多记录带到 spring 环境中。

于 2012-12-17T18:30:21.630 回答