Я записи данных в MongoDB в следующем формате:MongoDB - Совокупные макс/мин/среднее для нескольких переменных сразу
{ "_id" : ObjectId("54f2393f80b72b00079d1a53"), "outT" : 10.88, "inT3" : 22.3, "light" : 336, "humidity" : 41.4, "pressure" : 990.31, "inT1" : 22.81, "logtime" : ISODate("2015-02-28T21:55:11.838Z"), "inT2" : 21.5 }
{ "_id" : ObjectId("54f2394580b72b00079d1a54"), "outT" : 10.88, "inT3" : 22.3, "light" : 338, "humidity" : 41.4, "pressure" : 990.43, "inT1" : 22.75, "logtime" : ISODate("2015-02-28T21:55:17.690Z"), "inT2" : 311.72 }
...
Как вы можете видеть, что есть один элемент времени и несколько чтений вошли. Я хочу объединить все показания, чтобы обеспечить максимальный минимум и среднее значение для каждой переменной, сгруппированной по часам дня. Мне удалось сделать это для одной переменной, используя следующую агрегирования скрипт:
db.logs.aggregate(
[
{
$match: {
logtime: {
$gte: ISODate("2015-03-01T00:00:00.000Z"),
$lt: ISODate("2015-03-03T00:00:00.000Z")
}
}
},
{
$project: {_id: 0, logtime: 1, outT: 1}
},
{
$group: {
_id: {
day: {$dayOfYear: "$logtime"},
hour: {$hour: "$logtime"}
},
average: {$avg: "$outT"},
max: {$max: "$outT"},
min:{$min: "$outT"}
}
}
]
)
, который производит:
{ "_id" : { "day" : 61, "hour" : 22 }, "average" : 3.1878750000000116, "max" : 3.44, "min" : 3 }
{ "_id" : { "day" : 61, "hour" : 14 }, "average" : 13.979541666666638, "max" : 17.81, "min" : 8.81 }
...
Я хотел бы, чтобы произвести вывод, который выглядит как:
{"outT": { output from working aggregation above },
"inT1": { ... },
...
}
Все, что я пытаюсь, похоже, вызывает ошибку в консоли mongo. Может ли кто-нибудь помочь?
Благодаря
Не могли бы вы, для завершения, также отправить сообщение об ошибке? – Bono
Ясно, как грязь для меня, но вы, возможно, ищете «статистику» по вашему результату агрегации? И вернуть их вместе с результатом агрегации? –