【问题标题】:Get back documents from MongoDB stored in UTC format从 MongoDB 中取回以 UTC 格式存储的文档
【发布时间】:2016-02-04 05:59:16
【问题描述】:

我的文档在 MongoDB 中以 UTC 格式存储日期:2016-01-28T01:00:00Z 其中 Z 代表 UTC 时间。

我要做的是找到日期尚未过期的所有文档(date_stored_in_DB > 今天的日期)。但是,我对这样做的正确方法感到困惑。

方法一:我是否应该先将今天的日期转换为 Z 格式(如上所示)并开始查看数据库?这样它只会匹配字符串。

方法 2: 我是否应该从数据库中获取所有记录并将每个日期转换为可解析的日期格式,如 02/03/2016 并与今天的日期进行比较?我在这里想正则表达式,但我不确定

方法 3:您的建议?

我正在使用带有 scala 和 play 框架的 reactivemongo 来完成这项工作。

【问题讨论】:

    标签: mongodb scala reactivemongo


    【解决方案1】:

    如果您将日期存储为 ISODate 类型,那么您可以像这样查询它:

    db.yourcollection.find({"date" : { $gte : new ISODate("2016-01-28T01:00:00Z") }});

    $gte 运算符查询大于或等于。有关其他信息,请参阅this

    查询所有记录然后将它们过滤掉通常不是一个好主意。

    【讨论】:

      【解决方案2】:

      最简单的方法是将今天的日期转换为 UTC:

       val utcString = new DateTime(now).withZone(DateTimeZone.UTC)
      

      您可以将此值传递给$gt MongoDB 查询以检索未过期的记录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-11
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        相关资源
        最近更新 更多