Spring data mongodb search for ISO date

人盡茶涼 提交于 2019-11-27 21:38:33
moonlighter

This code should work fine for what you need:

criteria = Criteria.where("dob").lte(new java.util.Date());

My test is with following code, which does work fine:

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

Query would execute perfect from Spring data mongodb0

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

But It will not execute from mongo CLI.

Query to execute on cli.

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

Thanks

For IDE use ISODate() for SPRING DAO convert string to Date object

query.addCriteria(Criteria.where("created").ne(null).andOperator(
                Criteria.where("created").gte(DateUtils.getDate("2016-04-14 00:00:00", DateUtils.DB_FORMAT_DATETIME)),
                Criteria.where("created").lte(DateUtils.getDate("2016-04-14 23:59:59", DateUtils.DB_FORMAT_DATETIME))
            ));


public final class DateUtils {    

    public static final String DB_FORMAT_DATETIME = "yyyy-M-d HH:mm:ss";        

    private DateUtils() {
        // not publicly instantiable
    }       

    public static Date getDate(String dateStr, String format) {
        final DateFormat formatter = new SimpleDateFormat(format);
        try {
            return formatter.parse(dateStr);
        } catch (ParseException e) {                
            return null;
        }
    }



} 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!