2017-04-06 3 views
0

J'effectue une commande d'agrégation dans une application PHP mongodb comme ci-dessous des lignes de code.Comment supprimer waitedMS et ok à partir de mongo db résultat d'agrégation?

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

Maintenant, la sortie est affiché comme

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

Je veux supprimer "waitedMS": 0. "result" :, et "ok": 1 du json. La sortie devrait être comme

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

S'il vous plaît aidez-moi !!!

+0

Je ne vois aucune sortie ici, mais ne serait-ce pas simplement '$ output [" result "]' alors? – miken32

+0

vous avez absolument raison mais il affiche maintenant comme [[....]] et je veux [...] – Nida

+0

Possible copie de [Comment puis-je extraire des données de JSON avec PHP?] (Http: // stackoverflow. com/questions/29308898/how-do-i-extrait-données-de-json-avec-php) – miken32

Répondre

1

Tout ce que vous avez à faire est d'accéder à l'élément "résultat". Ne le poussez pas sur un autre tableau.

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