我試圖輸出按日期分組的日期數組,其字段總數爲minutes_numeric
。mongoDB PHP按日期和總和字段按日期收集
我當前的查詢是:
return $this->db->Work->aggregate(array(
array(
'$match' => array(
'date' => array('$gt' => $start, '$lt' => $end)
)
),
array(
'$project' => array(
'year' => array('$year' => '$date'),
'month' => array('$month' => '$date'),
'day' => array('$dayOfMonth' => '$date'),
),
),
array(
'$group' => array(
'_id' => array('year' => '$year', 'month' => '$month', 'day' => '$day'),
'minutes_numeric' => array('$sum' => 1)
),
),
array(
'$sort' => array(
'_id' => 1
),
),
array(
'$limit' => 30
)
));
,輸出:
{
result: [
{
_id: {
year: 2013,
month: 12,
day: 4
},
minutes_numeric: 40
},
{
_id: {
year: 2013,
month: 12,
day: 11
},
minutes_numeric: 127
},
{
_id: {
year: 2013,
month: 12,
day: 12
},
minutes_numeric: 108
}
],
ok: 1
}
這是偉大的,但是minutes_numeric
代表行的那一天的數目,所以我改變了$group
條款:
array(
'$group' => array(
'_id' => array('year' => '$year', 'month' => '$month', 'day' => '$day'),
'minutes_numeric' => array('$sum' => '$minutes_numeric')
),
),
然後改變sum(minutes_numeric)爲0而不是實際的總和。
我不確定爲什麼我的總和是哪裏錯了,任何幫助是極大的讚賞
編輯,
如果我更新$項目包括minutes_numeric然後總和似乎排除$匹配參數
array(
'$project' => array(
'year' => array('$year' => '$date'),
'month' => array('$month' => '$date'),
'day' => array('$dayOfMonth' => '$date'),
'minutes_numeric' => 1
),
),
array(
'$group' => array(
'_id' => array('year' => '$year', 'month' => '$month', 'day' => '$day'),
'minutes_numeric' => array('$sum' => '$minutes_numeric')
),
)
對不起,我不明白「總和似乎排除$匹配參數」,你是什麼意思? –
您可以在編輯完成後與我們分享結果嗎? –
請提供您收藏中的實際文檔。我懷疑「minutes_numeric」不是一個簡單的頂級字段。 –