在php访问mongodb,用group操作是不能没有order函数的,只能自己实现。
我的实现如下
<?php
$collection->save(array("category" => "fruit" , "a" => 2, "b" => 2));
$collection->save(array("category" => "fruit" , "a" => 5, "b" => 5));
$collection->save(array("category" => "veggie", "a" => 1, "b" => 1));
// use all fields
$keys = array();
// set intial values
$initial = array("a" => 0, "b" => 0);
// JavaScript function to perform
$reduce = "function (obj, prev) { prev[a] += obj[a];prev[b] += obj[b] }";
// only use documents where the "a" field is greater than 1
$ret = $collection->group($keys, $initial, $reduce);
foreach ($ret['retval'] as $key => $row) {
$sortBy[$key] = $row['a'];
}
array_multisort($sortBy, SORT_ASC, $ret['retval']);
var_dump($ret);
?>