Я хочу сгруппировать коллекцию, а затем вычислить среднее значение в одном поле групп.Средние значения для элементов группы с использованием 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
как я могу найти среднее количество запросов на _id? –
Вам нужно добавить только после первой $ group другую группу, такую как «$ group: {_ id: null, avgreq: {$ avg:" $ requests "}}". Учтите, что вы не можете взять avg tet за id и глобальные avg-запросы в том же запросе. –