如何从mongo db聚合结果中删除waitedMS和ok?

时间:2017-04-06 05:32:13

标签: php json mongodb mongodb-php

我在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":[]}, ...
]

请帮帮我!!!

1 个答案:

答案 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"];
相关问题