Aggregation verwenden
dies ist ein großartiger Artikel um Ihre Dokumente zu gruppieren, wählen Sie dann ein Element pro Dokument aus.
Sie müssen auch die Dokumente der letzten 24 Stunden filtern, dann das Projekt nach Suchen und hour
vom Zeitstempel.
Ihre Abfrage sieht in etwa so aus
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] }
}
}
])