mongodb aggregate 按照时间聚合 需要注意日期的UTC格式

因为mongodb是按照utc时间存储 比中国的时区要少8个小时 如果直接变成字符串聚合是不正确的

db.getCollection("xxxxx").aggregate([
    {
        $match: {
            created_at: {$gte: ISODate('2021-01-01'),$lte: ISODate("2021-03-12")}
        }
    },{
        $project: {
            created_at: 1,
            created_day: {
                $dateToString: {
                        format: "%Y-%m-%d",
                        date: {
                            "$add": [ "$created_day", 28800000]
                        }
                    }
            }
        }
    },{
        $group: {
            _id: "$created_day",
            count: {$sum: 1}
        }
    },{
        
    }
])

你可能感兴趣的:(mongodb aggregate 按照时间聚合 需要注意日期的UTC格式)