2017-01-03 80 views
0

我有日期字段保存在蒙戈DB为:查询数据库基于保存在毫秒计的日期

"startTime" : NumberLong("1481715000000"), 
"endTime" : NumberLong("1481715900000") 

我怎么能建立一个查询来获取其上面的开始时间字段相匹配的文件使用java的当前日期应该是这样的:

query.addCriteria(Criteria.where(("startTime").is(new java.util.Date())); 

请帮我建立这个查询。任何建议,将不胜感激。

回答

0

看起来像是开始时间是Wed Dec 14 2016 11:30:00 (UTC)

LocalDate localDate = LocalDate.of(2016, 12, 14); 
LocalDateTime localDateTime = LocalDateTime.of(localDate,LocalTime.of(11,30,0); 
Instant instant = localDateTime.toInstant(ZoneOffset.UTC); 
Date date = Date.from(instant); 

date.getTime()打印1481715000000.通过这个date.getTime()您查询等于比较。

更新:

query.addCriteria(Criteria.where(("startTime").is(date.getTime())); 
+0

萨格尔您好,感谢您的回答:-)但我的要求是让基于存储在毫秒领域开始时间值的当前日期的所有文件。 – Manju

+0

哦,我明白了。这是一个长期的价值。只需将'date.getTime()'传递给查询即可。更新了答案。那是你在找什么?您需要创建今天的日期并相应地进行调整,以匹配开始时间并将milllis传递给查询。 – Veeram