2
我有以下收集結構mongodb的平均
{
"_id": {
"d_timestamp": NumberLong(1429949699),
"d_isostamp": ISODate("2015-04-25T08:14:59.0Z")
},
"XBT-USD-cpx-okc": [
{
"buySpread": -1.80081
}
我運行以下聚合
$spreadName ='XBT-USD-stp-nex';
$pipe = array(
array(
'$match' => array(
'_id.d_isostamp' => array(
'$gt' => $start, '$lt' => $end
)
)
),
array(
'$project' => array(
'sellSpread' =>'$'.$spreadName.'.sellSpread',
)
),
array(
'$group' => array(
'_id' => array(
'isodate' => array(
'$minute' => '$_id.d_isostamp'
)
),
'rsell_spread' => array(
'$avg' => '$sellSpread'
),
)
),
);
$out = $collection->aggregate($pipe ,$options);
,我得到作爲結果的值0爲rsell_spread
而如果我跑例如$max
而不是$group
中的$avg
,我得到準確的值rsell_spread
,具有以下結構
{
"_id": {
"isodate": ISODate("2015-04-25T08:00:58.0Z")
},
"rsell_spread": [
-4.49996▼
]
}
所以我有兩個問題:
1 /怎麼會沒有了$avg
功能不起作用?
2 /當我使用$max
例如(只是一個常規數字)時,我怎麼能不能在一個數組中?