PHPを使用して、この単純なmongodbクエリの結果の数を数える方法を考えています.
<?php
//connection to mongodb
$collection = new MongoCollection($db, 'User');
$retval = $collection->distinct("age");
var_dump($retval);
?>
$retval 変数に含まれる結果の数をカウントするにはどうすればよいですか?
MongoDB の PHP ドキュメントには、コレクションを取得する際のカウント方法が記載されています: http://www.php.net/manual/en/mongocollection.count.php
個別の結果をカウントするために、次の例のようにグループ収集で map-reduce を作成できます。
<?php
$retval = $collection->group(
array('age' => true), // field(s) to group by
array('count' => 0),
new MongoCode('function(doc, prev) { prev.count += 1 }'),
array(null) // condition
);
?>
の
new MongoCode(..)
関数は、現在のドキュメントと集計をこの時点まで取得し、集計を行います。最後に、カウントを取得できます。
print($retval["count"]);