Извлечение документов из коллекции Mongo db на основе сегодняшней даты

Я новичок в mongodb, у меня возникли проблемы при запросе базы данных для получения документов на основе текущей даты. Сохраняя документ в базу данных, я устанавливаю поле billingDate с помощью

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

Итак, поле Date моей базы данных:

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

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

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

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

2 ответа

Решение

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

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

Ваши критерии неверны, вы используете lte, что означает меньше, чем равный. Используйте эквалайзер

http://api.mongodb.com/java/3.0/?com/mongodb/client/model/Filters.html

Другие вопросы по тегам