2012-05-06 5 views
1

mongoDB에서 그룹 쿼리를 수행하려고하는데 잘못된 결과를 얻었고 모든 조정을 통해 내 문제를 해결할 수 없습니다.GroupBy in Mongo with PHP

나는 다음과 같은 스키마 모음 (action_이 카운터) 나는 모든 상점에서 모든 카운터를 합계를 각 사용자에 필요한

"_id": ObjectId(""), 
"action_1": 3, 
"action_2": 2, 
"action_4": 0, 
"shop": ObjectId(""), 
"user": ObjectId(""), 
"action_3": 33 

를 가지고 있고, 나는이 짓했습니다

$keys = array("action_1"=>1, "action_2"=>1, "action_3"=>1, "action_4"=>1); 
$initial = array("action_1"=>0, "action_2"=>0, "action_3"=>0, "action_4"=>0); 
$reduce = "function (obj, prev) { 
    prev.action_1 += obj.action_1; 
    prev.action_2 += obj.action_2; 
    prev.action_3 += obj.action_3; 
    prev.action_4 += obj.action_4; 
}"; 
$condition = array('user' => $user_id); 
$g = $collection->group($keys, $initial, $reduce, $condition); 

결과는 값을 추출하는 문서 배열입니다. 내가 연관 배열의 배열을해야하고, 모든 사용자가 같은 것을해야하는 :

array ("user") { 
    action_1 => sum, //integer 
    action_2 => sum, 
    action_3 => sum, 
    action_4 => sum 
} 

답변

0

를 대신 다음 user 키에 의해 그룹화 할 것

$keys = array("user"=>1);