【问题标题】:Convert ISO format date time into a Date in mongoDB 3.6将 ISO 格式日期时间转换为 mongoDB 3.6 中的日期
【发布时间】:2020-08-11 12:37:12
【问题描述】:

"dateField" : ISODate("2019-05-20T19:04:35.000Z")

如何转换成

"dateField" : ISODate("2019-05-20T00:00:00.000Z")

【问题讨论】:

    标签: mongodb mongodb-query aggregate


    【解决方案1】:

    使用$dateToString将日期转换为字符串(Y-m-d)然后使用$dateFromString转换为ISO日期,

    db.collection.aggregate([
      {
        $project: {
          date: {
            $dateFromString: {
              dateString: {
                $dateToString: {
                  format: "%Y-%m-%d",
                  date: "$date"
                }
              }
            }
          }
        }
      }
    ])
    

    Playground

    【讨论】:

    • 如果 $date 为空,则生成的文档将具有 "date": null 。有没有办法避免这种情况。这将节省磁盘空间,因为有很多文档和日期字段。
    • 我不想在结果中出现"date": null。仅当字段不为空时才进行转换。
    • 很遗憾没有!由于这个项目阶段即将到来,仅针对几个日期字段进行聚合。
    • mongoplayground.net/p/sd0w0SCoRD_ - 结果不应包含任何为空的日期字段。
    • 你可以问一个新问题,因为这是个好问题,我会在那里回答。
    猜你喜欢
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 2017-05-01
    • 2018-02-22
    • 1970-01-01
    相关资源
    最近更新 更多