TaxiPackageMongo::getCollection()->aggregate([ ['$project' => ['advert_id' => 1, 'amount_sum' => 1]], ['$group' => ['_id' => '$matching_id', 'timestamp' => ['$max' => '$timestamp']]], //分组 ['$sort' => ['timestamp' => -1]], //排序 ['$match' => ['timestamp' => ['$gt' => intval(time() - 1800)]]] //条件 ]);
注:要注意顺序,match和group上下的关系在于where和having的关系
aggregate聚合的结果必须要限制在16M以内(MongoDB支持的最大响应消息大小)
MapReduce对于返回集合大小几乎无限制
group有4M的限制