time.setCurrentOrRange(), $gte: time.setCurrentOrRange(ms) }
}
},
{ $group:
{
_id: null,
LastUpdate : { $max: "$Date" },
minTemperature: { $min: "$Temperature" },
maxTemperature: { $max: "$Temperature" },
avgTemperature: { $avg: "$Temperature" },
minPressure: { $min: "$Pressure" },
maxPressure: { $max: "$Pressure" },
avgPressure: { $avg: "$Pressure" },
}
},
{ $project:
{
_id: null,
LastUpdate : 1,
Temperature: {
Min: ["$minTemperature", "$LastUpdate"],
Max: ["$maxTemperature", "$LastUpdate"],
Avg: { $round: ["$avgTemperature", 1] }
},
Pressure: {
Min: ["$minPressure", "$LastUpdate"],
Max: ["$maxPressure", "$LastUpdate"],
Avg: { $round: ["$avgPressure", 1] }
},
}
},
{ $project:
{
_id: 0,
Date: 0,
City: 0,
Street: 0
}
}
]};
У меня есть такая агрегация. Здесь я нахожу минимальные, максимальные и средние значения по полям. Хочется по минимальным и максимальным значениям ещё получать timestamp из того же документа, чтобы знать в какой момент времени было минимальное или максимальное значение. Я не понимаю, можно ли это сделать? )
Самый простой способ — двумя агрегациями.
Обсуждают сегодня