Spring数据mongodb搜索ISO日期

Dee*_*wal 7 java spring mongodb spring-data-mongodb

我正在尝试使用查询搜索出生日期

criteria = Criteria.where("dob").lte(new DateTime().toDate());
Run Code Online (Sandbox Code Playgroud)

并且spring数据mongodb生成以下查询:

MongoTemplate:使用查询查找:

{ "dob" : { "$lte" : { "$date" : "2015-05-16T07:55:23.257Z"}}}
Run Code Online (Sandbox Code Playgroud)

fields:类为null:class com.temp.model.User in collection:user

但我没有得到任何结果.

我在mongodb的dob字段:

{"dob" : ISODate("1991-01-23T00:00:00Z")}
Run Code Online (Sandbox Code Playgroud)

我如何以ISODate格式搜索dob

moo*_*ter 6

此代码应该可以满足您的需求:

criteria = Criteria.where("dob").lte(new java.util.Date());
Run Code Online (Sandbox Code Playgroud)

我的测试是使用以下代码,它可以正常工作:

Lis<User> users = mongoOps.find(query(where("isActive").is(true).and("CreatedDate").lte(new java.util.Date())), User.class);
Run Code Online (Sandbox Code Playgroud)


Dee*_*wal 6

查询将从Spring数据mongodb0执行完美

{"dob":{"$ lte":{"$ date":"2015-05-16T07:55:23.257Z"}}}.

但它不会从mongo CLI执行.

查询在cli上执行.

{DOB:ISODate( "2015-05-15T07:55:23.257Z")}

谢谢