我在mongodb php应用程序中执行聚合命令,如下面的代码行。
<?php
$query = array('$or' => array(
array('employeeList'=>array('$exists' => false)),
array('employeeList'=>array('$eq' => null)),
array('employeeList'=>array('$eq' => ",")),
array('employeeList'=>array('$eq' => ""))
));
$pipeline = array(
array(
'$match' => $query
),
array(
'$lookup' => array(
'from' => 'userTbl',
'localField' => 'user_id',
'foreignField' => 'uid',
'as' => 'userdetails'
)
),
);
$output = $this->db->broadcastTbl->aggregate($pipeline);
$result =array();
array_push($result, $output);
现在输出显示为
[{"waitedMS":0,"result":[{"_id":{"$id":"58d7a6561d78597411000029"},"broadcast_id":35,"studentList":"","employeeList":"999","mailTitle":"hello","broadcastMessage":"how","emailSent":"0","userdetails":[]},{"_id":....
...
"ok":1}]
我想删除“waitedMS”:0。 “结果”:和“ok”:来自json的1。输出应该像
[{"_id":{"$id":"58d7a6561d78597411000029"},"broadcast_id":35,"studentList":"","employeeList":"999","mailTitle":"hello","broadcastMessage":"how","emailSent":"0","userdetails":[]}, ...
]
请帮帮我!!!
答案 0 :(得分:1)
您只需访问“结果”项即可。不要把它推到另一个阵列上。
<?php
$query = array('$or' => array(
array('employeeList'=>array('$exists' => false)),
array('employeeList'=>array('$eq' => null)),
array('employeeList'=>array('$eq' => ",")),
array('employeeList'=>array('$eq' => ""))
));
$pipeline = array(
array(
'$match' => $query
),
array(
'$lookup' => array(
'from' => 'userTbl',
'localField' => 'user_id',
'foreignField' => 'uid',
'as' => 'userdetails'
)
),
);
$output = $this->db->broadcastTbl->aggregate($pipeline);
$result = $output["result"];