【问题标题】:Convert query with ISODate使用 ISODate 转换查询
【发布时间】:2022-01-14 11:56:30
【问题描述】:

我有这个 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);

但是我得到的结果是不同的(从 mongo 我得到 1 作为结果,而从 java 得到 0)

【问题讨论】:

    标签: java mongodb mongodb-query


    【解决方案1】:

    MongoDB 将日期时间存储在 GMT+0 中。您在 Javascript 中的第一个查询是调用ISODate(),它总是产生一个带有 GMT+0 ("Z"ulu) 时间偏移的日期时间。 您的 Java 执行环境在调用 parse() 时可能会考虑本地时间偏移并创建稍微不同的日期时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2020-11-28
      相关资源
      最近更新 更多