2013-05-17 21 views
0

讓Mongodb聚合工作起來有點困難。它不斷給我空。請幫忙。以下是用php編寫的代碼。謝謝。MongoDB不斷給我null

我想要做的就是總結值的2場,請求和響應,2個特定日期

try { 
     $mongodb = new MongoClient("mongodb://ad:[email protected]"); 

     $database = $mongodb->selectDB('backend'); 
     $collection = new MongoCollection($database, 'RequestSummary'); 

     $pipeline = array(
      array(
       '$group' => array(
        '_id' => array(
         'request' => array('$sum' => '$Requests'), 
         'response' => array('$sum' => '$Responses') 
        ) 
       ) 
      ), 
      array(
       '$match' => array(
        'RequestDate' => array(
         '$gte' => intval($_SESSION['range_from']), 
         '$lte' => intval($_SESSION['range_to']) 
        ) 
       ) 
      ) 
     ); 
     $collection->aggregate($pipeline); 
     var_dump($g); 
    } catch (MongoConnectionException $exc) { 
     echo $exc->getTraceAsString(); 
    } 

回答

0

_id$group不能包含聚合運營商如$sum之間。這些總和需要定義爲與_id相同級別的字段。如果您不想在特定字段上進行分組,您可以使用NULL這樣的_id

array(
    '$group' => array(
     '_id' => NULL, 
     'request' => array('$sum' => '$Requests'), 
     'response' => array('$sum' => '$Responses') 
    ) 
),