2012-05-06 29 views
1

我試圖在mongoDB上做一個組查詢,但是我得到了一個錯誤的結果,並且所有的調整都沒有解決我的問題。GroupBy在Mongo中用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);