根据今天的日期从Mongo数据库集合中检索文档

时间:2017-01-02 17:07:59

标签: java mongodb spring-mongo spring-mongodb

我是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()));

通过执行上述查询,我​​也收到了以前的账单,但我只需要今天(我不想考虑其中的时间戳)。请帮我收到当前日期的账单。任何建议都会很明显。

2 个答案:

答案 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