1. 程式人生 > >用php訪問mongodb進行group sum order操作

用php訪問mongodb進行group sum order操作

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

?>