春季数据 mongo存储库查询排序

我正在寻找如何将排序引入到我拥有的存储库方法中的查询注释中。我已经在Google和这里看到了这个代码,但我无法让它工作

@Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)")
    Job findOneActiveOldest();

@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }")
Job findOneActiveOldest();

我知道通过分页我可以做到这一点,但在某些情况下我不需要分页,所以我想知道如何使用Query注释来制作它。

有什么建议吗?


答案 1

我不认为用@Query注释来做到这一点。如果您不需要分页,则可以使存储库方法使用 Sort 参数:

@Query("{ state:'ACTIVE' }")
Job findOneActive(Sort sort);

并使用它:

yourRepository.findOneActive(new Sort(Sort.Direction.DESC, "created"))

答案 2

只需使用注释的排序参数。1 = ASC,-1 = DESC@Query

    @Query(
        value  = ...,
        sort = "{'details.requestTime': -1}"
    )