mongo根据日期对数据按天进行汇总?

图片说明

mongo中时间为int类型,想要使用aggregate中的$group+$dayOfYear对数据按照天数进行分组,但 **new Date('$epochtime') ** 不起作用?

db.histories.aggregate(
    {$group:{_id:{$dayOfYear:new Date('$epochtime')}}}
)

问题中提到mongo中的时间为int类型,这意味着在执行aggregate操作前需要将int类型的时间转换成Date类型。而在问题中的代码尝试使用了new Date('$epochtime')进行转换,但没有得到正确的结果。

原因是$dayOfYear是需要处理Date类型的数据的,而在代码中使用了字符串作为参数传递,这是不正确的。正确的做法是对epochtime字段进行$toDate操作,以将其转换为Date类型。修改后的代码如下:

db.histories.aggregate(
    {$group:{_id:{$dayOfYear:{$toDate: '$epochtime'}}}}
)

此时,代码将epochtime字段转换为Date类型,并使用$dayOfYear对日期按天数进行分组,实现了按天数汇总数据。