MongoCollection::group
(PECL mongo >=0.9.2)
MongoCollection::group — Effecture une opération de regroupement
Description
Liste de paramètres
- 
     
      keys
- 
      Les champs avec lesquels faire le regroupement. Si un tableau ou un objet non-code est passé, ce sera la clé utilisée pour grouper les résultats. 1.0.4+: Si keysest une instance de MongoCode,keyssera considéré comme une fonction qui retourne la clé pour effectuer le regroupement (voir l'exemple ci-dessous sur le passage d'une fonctionkeys).
- 
     
      initial
- 
      Valeur initiales des compteurs d'agrégation. 
- 
     
      reduce
- 
      Fonction acceptant deux arguments (le document courant et l'agrégation à ce point) et effectue l'agrégation. 
- 
     
      options
- 
      Paramètres optionnels pour la commande de groupe. Les options accéptées sont: - 
        "condition" Critère pour inclure un document dans l'agrégation. 
- 
        "finalize" Fonction appelée une fois par clé unique qui prend le rendu final de la fonction de réduction. 
 
- 
        
Valeurs de retour
Retourne un tableau contenant les résultats.
Historique
| Version | Description | 
|---|---|
| 1.2.11 | Lance une alerte de niveau E_DEPRECATEDlorsque
        le paramètreoptionsest de type scalar. | 
Exemples
Exemple #1 Exemple avec MongoCollection::group()
<?php
$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));
$keys = array("category" => 1);
$initial = array("items" => array());
$reduce = "function (obj, prev) { prev.items.push(obj.name); }";
$g = $collection->group($keys, $initial, $reduce);
echo json_encode($g['retval']);
?>$collection->save(array("a" => 2));
$collection->save(array("b" => 5));
$collection->save(array("a" => 1));
// Utilisation de tous les champs
$keys = array();
// Défini les valeurs initiales
$initial = array("count" => 0);
// Fonction JavaScript pour traitement
$reduce = "function (obj, prev) { prev.count++; }";
// N'utilisez que les documents où le champ "a" est plus grand que 1
$condition = array('condition' => array("a" => array( '$gt' => 1)));
$g = $collection->group($keys, $initial, $reduce, $condition);
var_dump($g);
?><?php
$c->group(new MongoCode('function(doc) { return {mod : doc.num % 4}; }'),
	 array("count" => 0),
	 new MongoCode('function(current, total) { total.count++; }'));
?>