Използвайте агрегиране
това е страхотна статия за това как да групирате документите си, след това изберете по един елемент на документ.
Трябва също така да филтрирате документи за последните 24 часа, след това да проектирате за намиране и hour
от клеймо за време.
Вашето запитване ще бъде нещо подобно
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] }
}
}
])