$hour (時)

最終更新:2026-10-09

$hour (時)

$hour は日付の「時」部分(0〜23)を返します。時間単位のトラフィック分析やアラートウィンドウ、時間別レポートでよく使われます。戻り値は 24 時間表記の整数です。タイムゾーンの影響が最も大きい演算子で、UTC に 8 時間足すと北京時間になります。タイムゾーンをまたぐ分析では必ず timezone を明示しないと、すべてのバケットがずれます。既定は UTC です。

カテゴリ日付
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

{ $hour: { date: <date-expression>, timezone: <timezone> } }

⚙️ パラメータ

date必須。日付式。
timezone任意のタイムゾーン。既定は UTC。

戻り値:時(0〜23)。date が null の場合は null。

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $hour: 時間ごとの訪問数(北京時間)
 db.visits.aggregate([
  { $group: {
      _id: { $hour: { date: '$visitAt', timezone: 'Asia/Shanghai' } },
      pv: { $sum: 1 }
  } }
])

出力:

{ "_id": 9, "pv": 2300 }
{ "_id": 10, "pv": 3100 }

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q範囲は?
A0〜23 の 24 時間表記です。
Q時間別データがずれるのはなぜ?
Aタイムゾーンが原因の可能性が高いです — 'Asia/Shanghai' のようなローカルゾーンを渡してください。
Q09 のような 2 桁の時間を出力できますか?
A$dateToString の %H プレースホルダを使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%