Laravel + elloquent + mongodb quero pegar a media de dados agrupado pelo created at em determinada hora
Galera seguinte, estou desenvolvendo uma aplicação onde temho varios sensores, recebo o json com humidade, temperatura e vpd.
Porem eu recebo de cada sensor em um intervalo de 15 em 15 segundos.
Quando eu vou pegar esses dados, de 1 semana pra plotar um grafico por exemplo, recebo muitos dados.
Eu gostaria de saber como eu faco pra pegar os dados 1 por hora e nos campos humidade, temperatura e VPD eu queria pegar média dentro dessa hora, ou seja, se em 1 hora eu tive 200 reqs, eu quero receber a media para que fique mais viavel de plotar esses dados.
Alguem ja fez isso?
Nunca trabalhei com Eloquent conectado em um mongoDB, mas em uma base SQL seria algo assim
$tempeatura_media = Tempeature::query()
->where('campo_timestamp_com_o_momento_do_registro', '>', Carbon::now()->subHours(3) ) //dados das ultimas 3 horas
->avg('campo_com_o_valor_da_temperatura');
Testa isso e dá um feedback.. se não funcionar a gente busca junto como fazer isso no Mongo.