定義
- $hour
- 日付の時間部分を 0 から 23 までの数値として返します。 - { $hour: <dateExpression> } - 引数は次のとおりです。 - 次の形式のドキュメント: - { date: <dateExpression>, timezone: <tzExpression> } フィールド説明- date- timezone- Optional.操作結果のタイムゾーン。- <tzExpression>は、有効な式であり、Olson タイムゾーン識別子 または UTC オフセット のいずれかとして形式された文字列に変換される必要があります。- timezoneが指定されていない場合、結果は- UTCに表示されます。形式例- Olson Timezone Identifier- "America/New_York" - "Europe/London" - "GMT" - UTC Offset- +/-[hh]:[mm], e.g. "+04:45" - +/-[hh][mm], e.g. "-0530" - +/-[hh], e.g. "+03" 
 
動作
| 例 | 結果 | ||||
|---|---|---|---|---|---|
|  | 12 | ||||
|  | 0 | ||||
|  | 19 | ||||
|  | 0 | ||||
|  | 5 | ||||
|  | 
 | ||||
|  | 
 | ||||
|  | 
 | 
注意
$hour は文字列を引数として取ることはできません。
例
次の文書を持つsalesコレクションを考えます。
 db.sales.insertOne(   {    "_id" : 1,    "item" : "abc",    "price" : 10,    "quantity" : 2,    "date" : ISODate("2014-01-01T08:15:39.736Z")   } ) 
次の集計では、 $hourやその他の日付式を使用してdateフィールドを分割します。
db.sales.aggregate(    [      {        $project:          {            year: { $year: "$date" },            month: { $month: "$date" },            day: { $dayOfMonth: "$date" },            hour: { $hour: "$date" },            minutes: { $minute: "$date" },            seconds: { $second: "$date" },            milliseconds: { $millisecond: "$date" },            dayOfYear: { $dayOfYear: "$date" },            dayOfWeek: { $dayOfWeek: "$date" }          }      }    ] ) 
この操作では、次の結果を返します。
{   "_id" : 1,   "year" : 2014,   "month" : 1,   "day" : 1,   "hour" : 8,   "minutes" : 15,   "seconds" : 39,   "milliseconds" : 736,   "dayOfYear" : 1,   "dayOfWeek" : 4,   "week" : 0 }