如何在Spring引导中为mongo db存储库进行自定义排序查询?

时间:2017-01-23 12:37:14

标签: spring mongodb spring-boot repository

我想将此查询与@Query注释放在我的存储库中。

这是查询:

`db.report.find({'company' : 'Random'}).sort( { 'reportDate' : -1} ).limit(1)`

使用@Query注释实现自定义查询或使用MongoTemplate的最佳方法是哪种?

2 个答案:

答案 0 :(得分:7)

使用Mongo模板。

Criteria find = Criteria.where("company").is("Random");
Query query = new Query().addCriteria(find).with(new Sort(Sort.Direction.DESC, "reportDate"));
BasicDBObject result = mongoOperations.findOne(query, BasicDBObject.class, "collection_name");

使用Mongo存储库

Report findTopByCompanyOrderByReportDateDesc(String company)

答案 1 :(得分:1)

请注意,在新版本的Springboot(v2.2.5)中,正确的方法是sort.by()。 像这样:

Query query = new Query().addCriteria(find).with(Sort.by(Sort.Direction.DESC, "reportDate"));