1

我是 mongodb 的新手,在查询数据库以根据当前日期检索文档时遇到一些问题。在将文档保存到数据库时,我正在使用设置 billingDate 字段

SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date d = sdf.parse(billingDate);

所以我的数据库的日期字段是:

"billingDate" : ISODate("2017-01-02T00:00:00Z")

我尝试查询如下:

Query query=new Query();
query.addCriteria(Criteria.where("billingDate").lte(new java.util.Date()));

通过执行上述查询,我​​也得到了以前的账单,但我只需要今天(我不想考虑其中的时间戳)。请帮我获取当前日期的账单。任何建议都将是可观的。

4

2 回答 2

1

你可以尝试这样的事情。这将为您提供当前日期,时间设置为 UTC 午夜。

LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MIDNIGHT);
Instant instant = localDateTime.toInstant(ZoneOffset.UTC);
Date date = Date.from(instant);
于 2017-01-02T17:36:25.993 回答
0

您的标准是错误的,您使用的是 lte,这意味着小于等于。使用当量

http://api.mongodb.com/java/3.0/?com/mongodb/client/model/Filters.html

于 2017-01-02T17:14:12.880 回答