我正在尝试按“group_name”进行分组,并使用汇总框架使用php驱动程序选择字段“group_name”和“group_id”:
Array
(
[$project] => Array
(
[group_name] => 1
[group_id] => 1
)
[$group] => Array
(
[_id] => $group_name
[total_sum] => Array
(
[$sum] => 1
)
)
)
我收到了这个:[errmsg] => exception: A pipeline stage specification object must contain exactly one field.
但是,当我仅使用$project
或$group
运算符时,它的工作正常。
答案 0 :(得分:4)
问题是您将$ project和$ group分组在一起。
您的数组看起来应该更像
{
$project: {
group_name: 1,
group_id: 1
},
},
{
$group:{
_id:{
group_name:'$group_name',
},
total_sum:{$sum:1}
}
}
答案 1 :(得分:0)
您需要重新格式化并使用逗号作为分隔符。它是一个管道,所以它一次只需要每个项目。
我没试过,但试试:
array
(
array(
array(
'$project' => array(
"group_name" => 1,
"group_id" => 1,
)
),
array(
'$group' => array(
"_id" => array("group_name" => '$group_name'),
"total_sum" => array('$sum' => 1),
),
)
)