Mic*_*elB 5 mongoose mongodb node.js aggregation-framework
有数百个线程和运算符可以将日期对象转换为 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'
}
Run Code Online (Sandbox Code Playgroud)
但是这些都不起作用,因为聚合是在 db 上处理的,并且不知道该函数是什么。我查看了许多运算符,并尝试先转换为字符串,然后再转换回 UNIX 日期,但似乎没有任何可用于从该 ISO 日期转换为 javascript/unix 时间戳的内容。
您可以使用以下聚合
db.getCollection('sessions').aggregate([
{ "$project": {
"timestamp": {
"$subtract": [ "$createdAt", new Date("1970-01-01") ]
}
}}
])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
890 次 |
| 最近记录: |