问题描述
我想获取不同的code_y
值,并且我使用下面的代码,输出等于select distinct code_y from table_x
,
$res = $db_x->command (
array(
"aggregate" => "table_x","pipeline" =>
array(
array( '$group' => array( "_id" => ['id' =>'$code_y','name' => '$code_x','color' => '$color']))),"cursor" => ['batchSize' => 200]
)
);
我得到的结果如下,我不需要[_id] => Array
,只需ID,名称和颜色,如何使用MongoDB和PHP聚合将数组与嵌套数组分开?或者如何将[_id] => Array
与id,name and color
放在一起?就像在我的前端htmls页面中一样,由于这些嵌套数组,我得到了[object] [Object]
。
[0] => Array
(
[_id] => Array
(
[id] => a1
[name] => bbb
[color] => blue
)
)
[1] => Array
(
[_id] => Array
(
[id] => a2
[name] => aaa
[color] => blue
)
)
[2] => Array
(
[_id] => Array
(
[id] => a3
[name] => abc
[color] =>red
)
)
我想要的如下:
[0] => Array
(
[id] => a1
[name] => bbb
[color] => blue
)
[1] => Array
(
[id] => a2
[name] => aaa
[color] => blue
)
[2] => Array
(
[id] => a3
[name] => abc
[color] =>red
)
解决方法
您需要的是小组之后的又一个阶段。
您可以使用项目并列出每个字段:
array( '$project' => array(
"id" => '$_id.id',"name" => '$_id.name',"color" => '$_id.color'
))
或$replaceRoot
来抓住他们:
array( '$replaceRoot' => array( "newRoot" => '$_id' ))