项目统计需求,需要使用mongodb像mysql 一样使用group by 进行统计查询,查找了TP5的think-mongo第三方类里面有multiAggregate 查询方法(vendor\topthink\think-mongo\src\Query.php),可以使用该方法进行聚合查询。
用法:
$map = array();
$aggregate = ['sum'=>'total']; //array $aggregate 聚合指令, 可以聚合多个参数, 如 ['sum' => 'field1', 'avg' => 'field2'];
$groupBy = ['query_date']; // //array $groupBy 类似mysql里面的group字段, 可以传入多个字段, 如 ['field_a', 'field_b', 'field_c']
$model->where($map)->multiAggregate($aggregate,$groupBy);