2017-01-02 3 views
0

Я новичок в mongodb, у меня есть некоторые проблемы при запросе базы данных для извлечения документов на основе текущей даты. При сохранении документа в базу данных, я устанавливаю поле BillingDate с помощьюИзвлечение документов из коллекции Mongo db на основе сегодняшней даты

SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT")); 
Date d = sdf.parse(billingDate); 

Так поле Дата моей базе данных:

"billingDate" : ISODate("2017-01-02T00:00:00Z") 

Я попытался запросить следующим образом:

Query query=new Query(); 
query.addCriteria(Criteria.where("billingDate").lte(new java.util.Date())); 

Выполняя вышеуказанный запрос, я получаю и предыдущие счета, но мне нужно только на сегодня (я не хочу рассматривать метку времени в нем). Пожалуйста, помогите мне получить только счета текущей даты. Любые предложения будут заметны.

+0

В какой версии Jdk вы используете? – Veeram

+0

Jdk версия 1.8. – Manju

ответ

1

Вы можете попробовать что-то вроде этого. Это даст вам текущую дату со временем, установленным в полночь в UTC.

LocalDate localDate = LocalDate.now(); 
LocalDateTime localDateTime = LocalDateTime.of(localDate, LocalTime.MIDNIGHT); 
Instant instant = localDateTime.toInstant(ZoneOffset.UTC); 
Date date = Date.from(instant); 
+0

Привет, Сагар, спасибо за ваш ответ. Ваш код работал частично для меня, потому что я получаю счета на сегодня, а также счета будущей даты :-(Так как я должен изменить свой код, чтобы получить только для сегодня без какой-либо отметки времени и будущих дат. – Manju

+0

Ответ, который я предоставил, не учитывает временные отметки. Поэтому я не уверен, что вы подразумеваете под «только на сегодня без какой-либо отметки времени». Можете ли вы добавить несколько примеров в сообщение и я могу обновить свой ответ соответственно? – Veeram

+0

Большое спасибо за ваш быстрый ответ Sagar :-) Да, это нормально. Но я получаю счета будущих дат, поэтому, пожалуйста, дайте мне знать, как этого можно избежать. – Manju

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