集計を使用する
これはすばらしい記事です ドキュメントをグループ化する方法については、ドキュメントごとに1つのアイテムを選択してください。
また、過去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] }
}
}
])