用php访问mongodb进行group sum order操作

来源:互联网 发布:杭州淘宝美工 编辑:程序博客网 时间:2024/05/17 22:17

在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);?>