2016-08-19 3 views
-1

В MongoDB, я имею значение даты поля, как указано здесь:Как запросить документ на основе поля Date в MongoDB?

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)); 

Обратите внимание, что это стандартный 3.x драйвер Java.

+0

Как преобразовать строку «2015-01-12T05: 00: 00.000 + 0000» в объект даты? – dev777

+2

Дата 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

Смежные вопросы