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对日期按天数进行分组,实现了按天数汇总数据。