2016-08-19 57 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