java - 如何在 Spring Data MongoDB 存储库中查询日期?

我的域对象 -

Person{
    String name;
    Date born;
}

我有一个 PersonRepository

PersonRepository{
    @Query(value="{'born': {$gt: new Date(?0)} }")
    findPerson(Date bornAfter);
}

我正在尝试获取所有在某个日期之后出生的人。但这不起作用。我错过了什么? mongodb 控制台中“出生”的日期格式如下所示

ISODate("2011-11-16T09:46:33.750Z")

我试图在 data-jpa 源中为此寻找单元/集成测试。找不到。有人能指点我吗?

最佳答案

因此,首先您必须确保不要在此处将 Spring Data JPA 与 Spring Data MongoDB 混为一谈。我不认为这个问题的任何部分实际上是针对一些 JPA 的东西。您的存储库可能如下所示:

public interface PersonRepository extends Repository<Person, Long> {

  // Query generated from the method name
  List<Person> findByBornGreaterThan(Date born);

  @Query("{'born' : { '$gt' : ?0 }}")
  List<Person> findPersons(Date born);
}

后者不适用于 1.0.1.RELEASE,我创建了一个 ticket为此,并且已经为即将发布的 1.0.2.RELEASE 和 1.1.0.M1 版本修复了它。因此,您可能想要获取快照构建来尝试它。我还创建了一个 ticket添加BeforeAfter到支持的关键字,以便比 LessThan 更直观地使用和 GreaterThan目前允许。

https://stackoverflow.com/questions/8179519/

相关文章:

mongodb - CouchDB 或 MongoDB 中的多对多关系

mongodb - 使用 ReadPreference=NEAREST 的 Mongos 路由

javascript - node.js mongodb - collection.find().t

mongodb-csharp 驱动程序 - 如何将属性保存为引用而不是嵌入?

mongodb - 文档数据库是否适合存储大量股票报价数据?

mongodb - 我应该使用哪个 Node 的 mongo 驱动程序?

javascript - Mongodb v4.0 事务,MongoError : Transact

mongodb - mongo 聚合结果超出最大文档大小

mongodb - 可以在不存在的集合上调用 ensureIndex 吗?

python - 如何将数据读入 TensorFlow?