我是mongodb的新手,我在查询数据库时根据当前日期检索文档时遇到了一些问题。 在将文档保存到数据库时,我使用
设置了billingDate字段SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date d = sdf.parse(billingDate);
所以我的数据库的Date字段是:
"billingDate" : ISODate("2017-01-02T00:00:00Z")
我尝试查询如下:
Query query=new Query();
query.addCriteria(Criteria.where("billingDate").lte(new java.util.Date()));
通过执行上述查询,我也收到了以前的账单,但我只需要今天(我不想考虑其中的时间戳)。请帮我收到当前日期的账单。任何建议都会很明显。
答案 0 :(得分:1)
你可以尝试这样的事情。这将为您提供当前日期,时间设置为UTC午夜。
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MIDNIGHT);
Instant instant = localDateTime.toInstant(ZoneOffset.UTC);
Date date = Date.from(instant);
答案 1 :(得分:0)
您的标准是错误的,您正在使用lte,这意味着小于等于。使用eq
http://api.mongodb.com/java/3.0/?com/mongodb/client/model/Filters.html