2017-04-06 100 views
0

我正在mongodb php应用程序中执行聚合命令,如下面的代码行。如何从mongo数据库聚合结果中删除waitedMS并确定?

<?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”:1来自json。输出应该像

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

请帮助我!

+0

我没有在这里看到任何输出,但不会是'$ output [“result”]'然后呢? – miken32

+0

你是绝对正确的,但现在正在显示为[[...]],我想[0123] []] – Nida

+0

[我如何从PHP提取JSON数据?](http:// stackoverflow。 COM /问题/ 29308898 /如何-DO-I-提取数据从 - JSON-与-PHP) – miken32

回答

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