Exemple d'opération de groupe Mongodb en PHP
Suite à l'article précédent, cet article parle principalement de la fonction group de mongodb, qui est assez puissante, il est assez compliqué d'utiliser find(), skip(), distinct(), etc.
Données de test :
> db.fruit.find(); { "_id" : 1, "category" : "fruit", "name" : "apple" } { "_id" : 2, "category" : "fruit", "name" : "peach" } { "_id" : 3, "category" : "fruit", "name" : "banana" } { "_id" : 4, "category" : "veggie", "name" : "corn" } { "_id" : 5, "category" : "veggie", "name" : "broccoli" }
1. Regrouper selon la catégorie
> db.fruit.group( { key: { category: 1}, reduce: function(obj, prev) { prev.items.push(obj.name); }, initial: { items : [] } } ); [ { "category" : "fruit", "items" : [ "apple", "peach", "banana" ] }, { "category" : "veggie", "items" : [ "corn", "broccoli" ] } ]
Le code php est le suivant :
$keys = array("category" => 1); $initial = array("items" => array()); $reduce = "function (obj, prev) { prev.items.push(obj.name); }"; $g = $collection->group($keys, $initial, $reduce); print_r($g); //结果如下。 Array ( [retval] => Array ( [0] => Array ( [category] => fruit [items] => Array ( [0] => apple [1] => peach [2] => banana ) ) [1] => Array ( [category] => veggie [items] => Array ( [0] => corn [1] => broccoli ) ) ) [count] => 5 [keys] => 2 [ok] => 1 )
2 . Regrouper par catégorie Groupe et nombre
> db.fruit.group( { key: { category: 1}, cond: { _id: { $gt: 2 } }, reduce: function(obj, prev) { prev.items.push(obj.name); prev.count++; }, initial: { items : [] ,count:0} } ); [ { "category" : "fruit", "items" : [ "banana" ], "count" : 1 }, { "category" : "veggie", "items" : [ "corn", "broccoli" ], "count" : 2 } ]
Le code php est le suivant :
$keys = array("category" => 1); $initial = array("items" => array(),'count'=>0); $reduce = "function (obj, prev) { " . "prev.items.push(obj.name); " . "prev.count++;" . "}"; $condition = array('condition' => array("_id" => array( '$gt' => 2))); $g = $collection->group($keys, $initial, $reduce, $condition); print_r($g); //结果如下。 Array ( [retval] => Array ( [0] => Array ( [category] => fruit [items] => Array ( [0] => banana ) [count] => 1 ) [1] => Array ( [category] => veggie [items] => Array ( [0] => corn [1] => broccoli ) [count] => 2 ) ) [count] => 3 [keys] => 2 [ok] => 1 )
3. L'utilisation de la fonction de groupe agrégé est également assez puissante. >
Le code php est le suivant :> db.fruit.aggregate([ { $match: { _id: {$gt:0} } }, { $group: { _id: "$category", count: { $sum: 1 } } }, { $sort: { count: -1 } } ]); { "_id" : "fruit", "count" : 3 } { "_id" : "veggie", "count" : 2 }
$cond = array( array( '$match' => array('_id' => array('$gt' => 0)), ), array( '$group' => array( '_id' => '$category', 'count' => array('$sum' => 1), ), ), array( '$sort' => array("count" => -1), ), ); $result = $collection->aggregate($cond); print_r($result); //结果如下: Array ( [result] => Array ( [0] => Array ( [_id] => fruit [count] => 3 ) [1] => Array ( [_id] => veggie [count] => 2 ) ) [ok] => 1 )
Pour plus d'articles liés aux exemples d'opérations de groupe mongodb en PHP, veuillez faire attention au site Web PHP chinois !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)