【问题标题】:Convert ISO date to UNIX timestamp mongodb将 ISO 日期转换为 UNIX 时间戳 mongodb
【发布时间】:2019-09-15 00:13:51
【问题描述】:

有数百个线程和运算符可以将日期对象转换为 ISO 字符串,但在 Node 中作为 mongoose/mongodb 聚合运算符的一部分,找不到任何资源。

我有一个旧版 mongodb 3.6,目前正在生产中使用,我有一个管道,我正在尝试将普通 ISO 日期对象从 mongo 转换为 UNIX 时间戳,以便我可以将它与 ngx-charts 和其他图表。

我无法使用 $toDate、$convert 运算符或 $dateFromString,因为我需要的选项在 3.6 中不可用

到目前为止,我已经尝试过这种变体:

      $project: {
        _id: 0,
        // name: '$_id._id',
        value: '$_id.count',
        name: new Date.parse('$_id.date').getTime(),
        min: '$min',
        max: '$max'
      }

但是这些都不起作用,因为聚合是在数据库上处理的,并且不知道该函数是什么。我查看了许多运算符并尝试先转换为字符串,然后再转换回 UNIX 日期,但似乎没有任何可用于从该 ISO 日期转换为 javascript/unix 时间戳的内容。

【问题讨论】:

    标签: node.js mongodb mongoose aggregation-framework


    【解决方案1】:

    你可以使用下面的聚合

    db.getCollection('sessions').aggregate([
      { "$project": {
        "timestamp": {
          "$subtract": [ "$createdAt", new Date("1970-01-01") ]
        }
      }}
    ])
    

    【讨论】:

      猜你喜欢
      • 2020-10-19
      • 2012-02-13
      • 2020-12-23
      • 2016-04-24
      • 2012-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多