2017-04-06 1 views
0

Ich führe Aggregationsbefehl in mongodb php Anwendung wie unter Zeilen des Codes.Wie kann ich waitMS und ok vom mongo db aggregationsergebnis entfernen?

<?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); 

Nun wird der Ausgang als

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

ich will "waitedMS" entfernen: 0 gewonnen. "Ergebnis": und "ok": 1 aus dem JSON. Die Ausgabe sollte wie folgt sein:

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

Bitte helfen Sie mir !!!

+0

Ich sehe keine Ausgabe hier, aber wäre das nicht nur $ Output ["Ergebnis"] 'dann? – miken32

+0

Sie sind absolut richtig, aber es wird jetzt angezeigt als [[....]] und ich will [...] – Nida

+0

Mögliche Duplikate von [Wie extrahiere ich Daten aus JSON mit PHP?] (Http: // stackoverflow. com/questions/29308898/how-do-ich-Extrakt-Daten-aus-JSON-mit-PHP) – miken32

Antwort

1

Sie müssen nur auf das Element "Ergebnis" zugreifen. Schiebe es nicht auf ein anderes Array.

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