Utiliser l'agrégation
c'est un excellent article pour savoir comment regrouper vos documents, choisissez un élément par document.
Vous devez également filtrer les documents des dernières 24 heures, puis projeter pour trouver et hour
à partir de l'horodatage.
Votre requête ressemblera à ceci
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] }
}
}
])