【问题标题】:Find entity with latest date using Spring Data with MongoDB使用带有 MongoDB 的 Spring Data 查找具有最新日期的实体
【发布时间】:2017-11-05 11:21:15
【问题描述】:

给定下一个对象结构:

class Foo {
  @Id
  String id;
  LocalDate date;
  ...
}

我们将这些对象存储在MongoDB 中。是否有可能通过MongoRepository 获取具有最新日期的实体,如下例所示?

interface FooRepository extends MongoRepository<Foo, String> {
    @Query(???)
    Foo getByLatestDate(LocalDate date);
}

【问题讨论】:

    标签: mongodb spring-data spring-data-mongodb localdate


    【解决方案1】:

    你可以试试下面的查询。

    使用@Query注解

    @Query("{ 'date' : ?0 }")
    Foo getByLatestDate(LocalDate date);
    

    或者

    使用存储库支持的关键字

    Foo findByDate(LocalDate date);
    

    更新:使用以下查询获取最新日期。

    Foo findFirstByOrderByDateDesc();
    
    Foo findTopByOrderByDateDesc();
    

    【讨论】:

    • 这只有在我知道我要找的日期时才有效。但我不知道给定实体的最新日期是什么。我需要找到最新日期的记录。它可能在过去,在未来,无论如何。
    • 更新为包含存储库方法以从集合中获取最新日期。我看看能不能找到等效的查询方法。
    • Mongo 无法识别这些查询。
    • 哦,真的。你得到什么错误?你的 spring mongo 版本是什么?
    • 对不起,我在执行时犯了一个错误。所有作品。谢谢!
    猜你喜欢
    • 2019-12-06
    • 2018-01-07
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多