用php訪問mongodb進行group sum order操作
阿新 • • 發佈:2019-02-15
在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); ?>