aggregate基本用法参考:http://www.runoob.com/mongodb/mongodb-aggregate.html
用的最多的是:
$project:改变文档字段显示格式,例如将时间戳,转换为xxxx-xx-xx的时间字符串形式。
$match:条件过滤,相当于关系型数据库的having, 或where
$group:相当于关系型数据库的group by
例子:报表查询,要以天,周,月三个维度去统计数据,而数据库里只有一个时间戳字段,collection格式如下:这里的timestamp时间戳字段是以s为单位
先转换timestamp格式为字符串格式:
现在需要按天,统计出每天shardingFlag是1或者2的交易的个数,$match中要放shardingFlag作为条件,group要放dateDay,shardingFlag:
其他以周,月作为统计维度,只不过是变换下@dateToString里面的format格式,mongo支持的格式可以参考:
https://blog.youkuaiyun.com/pengyiming/article/details/82775827
要注意的是他的例子中,timestamp单位是ms,我上面的例子中单位是s,所以做了一个$multiply
另外mongo官方操作文档:https://docs.mongodb.com/manual/introduction/