#java #mongodb #mongodb-query
#Ява #mongodb #mongodb-запрос
Вопрос:
У меня есть этот запрос MongoDB:
db.Certificates.countDocuments( {"vaccination.somministration_date":ISODate("2021-08-04")} )
и я хочу выполнить это также в своем java-приложении, поэтому я попробовал этот код:
Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2021-08-04"); Bson query = eq("vaccination.somministration_date", date); long count = collection.countDocuments(query);
Но результаты, которые я получаю, отличаются (у монго в результате 1, а у java 0).
Ответ №1:
MongoDB хранит время в GMT 0. Ваш первый запрос в Javascript вызывает ISODate()
, который всегда выдает дату и время со смещением по времени GMT 0 («Z»ulu). Вполне вероятно, что ваша среда Java exec при вызове parse()
учитывает смещение по местному времени и создает немного другое время.