根据今天的日期从 Mongo 数据库的集合中检索文档
Retrieving the documents from the collection of Mongo db based on today's date
我是 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()));
通过执行上述查询,我也得到了以前的账单,但我只需要今天的账单(我不想考虑其中的时间戳)。请帮助我只获取当前日期的账单。如有任何建议,我们将不胜感激。
您的标准有误,您使用的是 lte,这意味着小于等于。使用 eq
http://api.mongodb.com/java/3.0/?com/mongodb/client/model/Filters.html
你可以尝试这样的事情。这将为您提供当前日期,时间设置为 UTC 午夜。
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MIDNIGHT);
Instant instant = localDateTime.toInstant(ZoneOffset.UTC);
Date date = Date.from(instant);
我是 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()));
通过执行上述查询,我也得到了以前的账单,但我只需要今天的账单(我不想考虑其中的时间戳)。请帮助我只获取当前日期的账单。如有任何建议,我们将不胜感激。
您的标准有误,您使用的是 lte,这意味着小于等于。使用 eq
http://api.mongodb.com/java/3.0/?com/mongodb/client/model/Filters.html
你可以尝试这样的事情。这将为您提供当前日期,时间设置为 UTC 午夜。
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MIDNIGHT);
Instant instant = localDateTime.toInstant(ZoneOffset.UTC);
Date date = Date.from(instant);