1
的平均我有一個MongoDB的文件是這樣的:MongoDB中得到dictfield /嵌入文檔
{
...
score: 200,
timing: {
rT: 124
},
utc_timestamp: ISODate("2014-10-19T04:45:04.772Z")
}
我可以用這個查詢得到score
平均:
System._get_collection().aggregate([
{ "$match": {
"system_id": system.id,
"utc_timestamp": {
"$gte": datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0) - datetime.timedelta(days=1),
"$lt": datetime.datetime.utcnow().replace(hour=0, minute=0, second=0, microsecond=0)
}
}},
{ "$group": {
"_id": { "$dayOfYear": "$utc_timestamp" },
"delay": { "$avg": "$score" },
"up": {
"$sum": { "$cond": [
{ "$eq": [ "$result", 405 ]}, 1, 0
]}
},
"total_count": { "$sum": 1 }
}},
{ "$project": {
"airtime": {
"$cond": [
{ "$eq": [ "$up", 0 ] },
0,
{ "$multiply" : [{"$divide": [ "$up", "$total_count" ]}, 100] }
]
},
"delay": 1
}}
])
注行:
"delay": { "$avg": "$score" },
如何獲得平均值timing
字典裏面的rT
字段?
這不起作用:
{ "$avg": "$timing.rT" }
如何「不起作用」? '{「$ avg」:「$ timing.rT」}'看起來不錯,應該可以工作。 – famousgarkin 2014-10-19 05:35:00
其實,它看起來像平均值爲'0',所以它正在工作。如果你想要一個答案,語法是正確的,我很高興接受。 – okoboko 2014-10-19 05:56:43