2012-12-17 33 views
2

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

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

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

谢谢。

回答

2

如果您myrepository对象是MongoRepository的一个实例,你可以调用的findAll方法具有可分页对象作为参数。

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

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

+0

谢谢 - 完美的作品! – user1452140

0

我觉得在MongoDB本身排序很好,因为我们在那里有很多选项,例如你提到的方式将给出排序列表。您可以定义一个索引,使排序更容易。在春天的环境中展示应该是一件容易的事。另外,如果你有分页类型的用例,那么正如你所说的那样,你可以在mongo层进行限制,并将许多记录带入春季环境。