You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现MongoDB GROUP BY与SUM聚合查询时遇语法错误求助

问题解决:PHP MongoDB聚合查询语法错误

错误原因

你写的代码用了JavaScript的对象语法({}),但PHP中定义关联数组必须用[](PHP 5.4+)或array(),这是导致语法报错的直接原因。

修正后的代码

对应你需求的SQL(按date分组、统计visits总和、筛选name='John'),正确的PHP代码如下:

$data = $collection->aggregate([
    ['$match' => ['name' => 'John']],
    ['$group' => ['_id' => '$date', 'total_visits' => ['$sum' => '$visits']]]
]);

代码说明

  • '$match' 对应SQL中的 WHERE name = 'John',用于筛选符合条件的文档
  • '$group' 对应SQL中的 GROUP BY date:
    • '_id' => '$date' 指定分组字段为date(MongoDB聚合分组必须通过_id定义)
    • 'total_visits' => ['$sum' => '$visits'] 对应SQL中的 SUM(visits),统计每组的访问量总和

另外注意:你原来的SQL写了SELECT SUM(visits),*,但MongoDB聚合分组后无法直接返回所有字段(因为分组是聚合操作,每组是聚合结果而非原文档),如果需要额外字段,需要根据业务需求调整聚合阶段(比如使用$project或$addToSet等操作符)。

内容的提问来源于stack exchange,提问作者Łukasz Trześniewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 04:05:56