2017-01-03 82 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