如何从 mongo 数据库聚合结果中删除 waitedMS 和 ok?

How to remove waitedMS and ok from mongo db aggregation result?

我正在 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。 "result":,以及来自 json 的 "ok":1。输出应该像

[{"_id":{"$id":"58d7a6561d78597411000029"},"broadcast_id":35,"studentList":"","employeeList":"999","mailTitle":"hello","broadcastMessage":"how","emailSent":"0","userdetails":[]}, ...
]

请帮帮我!!!

您需要做的就是访问 "result" 项目。不要把它推到另一个阵列上。

<?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"];