mongodb - 如何在 mongodb 聚合中将 ISO 日期转换为 unix 纪元

标签 mongodb aggregation-framework

我在 mongo 中有一个 ISODate 字段。 有没有一种简单的方法可以将其转换为 unix 时间戳?

即: ISODate("2018-03-30T13:06:05.739-07:00") => 1522440365739

最佳答案

从 4.0 开始,您可以使用 $toDecimal$toInt 对于现在的大多数时间戳来说太小了。

db.collection.aggregate([{
  $project: {
    date: {'$toDecimal': '$date'}
  }
}])

这会返回以毫秒为单位的 unix 时间戳。要转换为秒,请使用 $divide by 1000

https://docs.mongodb.com/manual/reference/operator/aggregation/toDecimal/

关于mongodb - 如何在 mongodb 聚合中将 ISO 日期转换为 unix 纪元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49583525/

相关文章:

arrays - MongoDB更新数组的多个记录

javascript - 仅返回 MongoDB 查询中一个字段的不同值

c# - 使用 NoRM 在 MongoDB 中延迟加载

javascript - $multiply 只支持数字类型,不支持数组

javascript - 如何返回符合 Mongodb 给定条件的子文档数组?

mongodb - Mongodb聚合中基于其他字段值的多个条件的动态新字段值

node.js - MongoDB/Mongoose 查询 : How to get different sets of data based on a field's value

mongodb-query - 加入mongodb中的两个集合

$lookup 阶段内的 MongoDB 聚合 $elemMatch

mongodb - 从 mongodb 中的其他集合创建一个新集合