Usar agregación
este es un gran artículo para saber cómo agrupar sus documentos, luego elija un elemento por documento.
También debe filtrar los documentos de las últimas 24 horas, luego proyectar para buscar y hour
de marca de tiempo.
Su consulta será algo como esto
collection.aggregate([
{
"$filter": {
"createdAt": { $gt: new Date(Date.now() - 24*60*60 * 1000) }
}
},
{
"$project": {
"h": {"$hour" : "$createdAt"},
"original_doc": "$$ROOT"
}
},
{
"$group": {
"_id": { "hour": "$h" },
"docs": { $push: "$original_doc" }
}
},
{
$replaceRoot: {
newRoot: { $arrayElemAt: ["$docs", 0] }
}
}
])