有数百个线程和运算符将日期对象转换为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'
}
,但是由于聚合是在db上处理的,所以都不起作用,也不知道该函数是什么。我看过很多运算符,并尝试先转换为字符串,然后再转换回UNIX日期,但是似乎没有任何可用于从该ISO日期转换为javascript / unix时间戳的信息。
答案 0 :(得分:2)
您可以使用以下汇总
db.getCollection('sessions').aggregate([
{ "$project": {
"timestamp": {
"$subtract": [ "$createdAt", new Date("1970-01-01") ]
}
}}
])