2016-08-19 60 views
-1

在MongoDB中,我有日期字段值指定的位置:如何根據MongoDB中的Date字段查詢文檔?

ISODate(2015-01-12T05:00:00.000+0000) 

我如何可以檢索基於使用Java這個日期欄的文檔。我將這個字符串2015-01-12T05:00:00.000+0000作爲參數發送給一個方法。我試圖將此字符串轉換爲Date並嘗試從MongoDB中檢索文檔。

我無法修復此問題。我使用的Java 7

+2

你檢查過mongo db api嗎? –

+0

HI dev777 - 你能告訴我們你到目前爲止已經嘗試了什麼,並解釋它以何種方式無效?它是否存在錯誤或無法找到您正在查找的數據或其他內容? –

回答

0

確保你有一個正確的Java Date對象,然後查詢這樣的:

Date myDate = <whatever>; 

MongoClient mongoClient = new MongoClient(); 
MongoCollection<Document> coll = mongoClient.getDatabase("test").getCollection("xyz"); 

FindIterable<Document> result = coll.find(Filters.eq("myDateField", myDate)); 

請注意,這是Java驅動程序3.X標準。

+0

如何將字符串「2015-01-12T05:00:00.000 + 0000」轉換爲jave Date對象? – dev777

+2

Date date = Date.from(DateTimeFormatter.ofPattern(「yyyy-MM-dd'T'HH:mm:ss.SSSZ」)。parse(「2015-01-12T05:00:00.000 + 0000」,ZonedDateTime :: from).toInstant()) - 但是請注意,目前似乎沒有支持使用除默認JVM時區以外​​的實際時區的方式,因爲mongo驅動程序僅支持簡單日期,該日期基本上會丟棄時區信息。我們現在只能希望有一個更好的未來版本。 – mtj

+0

哪個maven依賴關係,我們是否用於DateFormatter? – dev777