我想获得一组值的平均值。 通过以下查询,我得到以下结果: 我希望得到" waardes"的平均值。阵列。 这在聚合查询中是否可行:
$Query= array(
array(
'$match' => array( '$and' => array(
array('ScienceId' => (string)748),
array('type' => 1),
array('day' => (string)2015-08-19),
array('hour' => array('$in' => 13)),
array('minute' => array('$in' => 11)),
array('values.118.GroepId' =>(int)118),
array('values.118.5.description' =>(string)001_buitentemp),
)
),
),
array(
'$sort' => array(
"_id" => -1,
"Day" => 1,
"Hour" => 1,
)
),
array(
'$limit' => 10000
),
array(
'$group' => array(
"_id" => array("Science Id" => '748',
"Day" => '2015-08-19,
"Hour" => '13',
"Minute" => '11',
"Groep Id" => '$values.118.GroepId",
"k" => '$values.'.$groep_id.'.'.$val_id.'.values',
),
"LastId" => array('$last' => '$_id'),
"FirstId" => array('$first' => '$_id'),
"Aantal" => array('$sum' => 1),
),
),
array(
'$project' => array(
"_id" => '$_id.Science Id',
"groep" => '$_id.Groep Id',
"waardes" => '$_id.k',
)
),
);
如果我运行此查询:$result = $col->aggregate($Query);
,我会得到以下结果:
{"result":[{"_id":"748","groep":118,"waardes":[20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2,20.2]}],"ok":1}
现在我希望获得" waardes"的平均价值。 这在聚合查询中是否可行。
如果我在查询中添加了array('$unwind' => '$waardes')
,则会收到以下错误:
exception: $unwind: value at end of field path must be an array'
这是我的文件:
{
"_id" : ObjectId("55d464811a8014df6d8b456d"),
"scienceId" : "748",
"type" : NumberLong(1),
"day" : "2015-08-19",
"hour" : "13",
"minute" : "11",
"values" : {
"118" : {
"GroepNaam" : "cel",
"GroepNummer" : NumberLong(1),
"GroepId" : NumberLong(118),
"5" : {
"description" : "001_buitentemp",
"values" : {
"0" : 20.1999999999999990,
"1" : 20.1999999999999990,
"2" : 20.1999999999999990,
"3" : 20.1999999999999990,
"4" : 20.1999999999999990,
"5" : 20.1999999999999990,
"6" : 20.1999999999999990,
"7" : 20.1999999999999990,
"8" : 20.1999999999999990,
"9" : 20.1999999999999990,
"10" : 20.1999999999999990,
"11" : 20.1999999999999990,
"12" : 20.1999999999999990,
"13" : 20.1999999999999990,
"14" : 20.1999999999999990,
"15" : 20.1999999999999990,
"16" : 20.1999999999999990,
"17" : 20.1999999999999990,
"18" : 20.1999999999999990,
"19" : 20.1999999999999990,
"20" : 20.1999999999999990,
"21" : 20.1999999999999990,
"22" : 20.1999999999999990,
"23" : 20.1999999999999990,
"24" : 20.1999999999999990,
"25" : 20.1999999999999990,
"26" : 20.1999999999999990,
"27" : 20.1999999999999990,
"28" : 20.1999999999999990,
"29" : 20.1999999999999990,
"30" : 20.1999999999999990,
"31" : 20.1999999999999990,
"32" : 20.1999999999999990,
"33" : 20.1999999999999990,
"34" : 20.1999999999999990,
"35" : 20.1999999999999990,
"36" : 20.1999999999999990,
"37" : 20.1999999999999990,
"38" : 20.1999999999999990,
"39" : 20.1999999999999990,
"40" : 20.1999999999999990,
"41" : 20.1999999999999990,
"42" : 20.1999999999999990,
"43" : 20.1999999999999990,
"44" : 20.1999999999999990,
"45" : 20.1999999999999990,
"46" : 20.1999999999999990,
"47" : 20.1999999999999990,
"48" : 20.1999999999999990,
"49" : 20.1999999999999990,
"50" : 20.1999999999999990,
"51" : 20.1999999999999990,
"52" : 20.1999999999999990,
"53" : 20.1999999999999990,
"54" : 20.1999999999999990,
"55" : 20.1999999999999990,
"56" : 20.1999999999999990,
"57" : 20.1999999999999990,
"58" : 20.1999999999999990,
"59" : 20.1999999999999990
}
}
}
}
}