Använd aggregering
det här är en bra artikel för hur du grupperar dina dokument, välj sedan ett objekt per dokument.
Du måste också filtrera dokument för de senaste 24 timmarna och sedan projicera för hitta och hour
från tidsstämpel.
Din fråga kommer ungefär så här
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] }
}
}
])