node.js - 将 ISO 日期转换为 UNIX 时间戳 mongodb
问题描述
有数百个线程和运算符可以将日期对象转换为 ISO 字符串,但是作为 Node.js 中的 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 时间戳的内容。
解决方案
您可以使用以下聚合
db.getCollection('sessions').aggregate([
{ "$project": {
"timestamp": {
"$subtract": [ "$createdAt", new Date("1970-01-01") ]
}
}}
])
推荐阅读
- caffe - 如何使用 caffe 模型提供的监督更新 pytorch 模型?
- sql - RedShift - 如何通过复合主键过滤表中的记录?
- web-scraping - 如何在 Linux 服务器上进行网络抓取
- r - 仅提取带有应用和子中断的字符串列的数字部分
- javascript - 在 div 上调用函数
- reactjs - Highcharts 不呈现:React+Typescript+Highcharts
- php - 图片上传在 Linkedin V2 API 中不起作用
- ios - 如何修复“ITunesSoftwareServiceAuthenticationErrorDomain 错误 504”。
- javascript - 如何迭代多个对象并删除某个属性
- java - 在给定秒数后中断 HTTP 请求