3
我想分組一個集合,然後計算組的一個字段的平均值。使用Mongo Aggregation Framework的組項目的平均值
設置我的分貝和內容是這樣的:
use testdb
db.bla.insert({"service": "A", "tet": "1"})
db.bla.insert({"service": "A", "tet": "100"})
db.bla.insert({"service": "A", "tet": "150"})
db.bla.insert({"service": "B", "tet": "10"})
db.bla.insert({"service": "B", "tet": "20"})
db.bla.insert({"service": "B", "tet": "25"})
現在我想所有的服務「A」和「B」的平均TET爲大家服務「A」和「B」的數量。 我嘗試這樣做:
db.bla.aggregate({ "$group": { _id: "$service", requests: { $sum:1}, averagetet: { $avg: "$tet"}}})
但是,總是給我「0」的平均值。 我在這裏錯過了什麼?
感謝 - 這很簡單:-) – pitseeker 2013-02-22 11:48:55
我怎麼能找到每個_id的平均請求數? – 2014-03-04 08:24:19
您只需在第一個$組之後添加另一個組,例如「$ group:{_ id:null,avgreq:{$ avg:」$ requests「}}」。考慮到你不能在同一查詢中採用avg tet每個id和全局avg請求。 – 2014-03-04 10:40:08