|
MongoCollection::groupSQL の GROUP BY コマンドと似た処理を行う 説明
public array MongoCollection::group
( mixed
$keys
, array $initial
, MongoCode $reduce
[, array $options = array()
] )パラメータ
返り値結果を含む配列を返します。 変更履歴
例例1 MongoCollection::group の例 これは、ドキュメントをカテゴリー別にまとめて カテゴリーごとの名前の一覧を作ります。
<?php上の例の出力は、 たとえば以下のようになります。
[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]
例2 MongoCollection::group の例 この例ではキーを使わないので、すべてのドキュメントがそれ自身のグループに属します。 また、この例では条件を使います。 この条件にマッチするドキュメントのみがグループ関数による処理の対象となります。
<?php上の例の出力は、 たとえば以下のようになります。
array(4) {
["retval"]=>
array(1) {
[0]=>
array(1) {
["count"]=>
float(1)
}
}
["count"]=>
float(1)
["keys"]=>
int(1)
["ok"]=>
float(1)
}
例3 フィールド名以外の何かでグループ化したい場合は、 MongoCollection::group の最初のパラメータに関数を渡すと 各ドキュメントに対してそれを実行します。 関数の返り値を使ってグループ化することができます。 この例は、num フィールドを 4 で割ったあまりでグループ化する方法を示すものです。
<?php |