【问题标题】:How to make a custom sorting query in spring boot for a mongo db repository?如何在 Spring Boot 中为 mongodb 存储库进行自定义排序查询?
【发布时间】:2017-01-23 12:37:13
【问题描述】:

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

这是查询:

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

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

【问题讨论】:

    标签: spring mongodb spring-boot repository


    【解决方案1】:

    使用 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)
    

    【讨论】:

    • 对于较新的版本,请使用 Sort.by(Direction.DESC, "fieldName"),因为 Sort 构造函数现在是私有的。
    【解决方案2】:

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

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

    【讨论】:

    • 工作谢谢!还有其他类似的问题仍在参考旧版本。
    猜你喜欢
    • 1970-01-01
    • 2017-11-06
    • 2019-07-07
    • 1970-01-01
    • 2015-08-17
    • 2018-09-02
    • 2020-11-29
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多