$year (年)
最終更新:2026-10-09
$year (年)
$year は日付の年(例: 2026)を返す、もっとも基本的な日付抽出演算子です。$month や $week と組み合わせて複数レベルの group キーにしたり、年単位のアーカイブや前年比分析に使います。戻り値は整数です。週をまたぐ年の境界では、ISO 週の年を返す $isoWeekYear と結果が異なることがあるため、週ベースの統計には $isoWeekYear を使ってください。
| カテゴリ | 日付 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $year: { date: <date-expression>, timezone: <timezone> } }
⚙️ パラメータ
| date | 必須。日付式。 |
|---|---|
| timezone | 任意のタイムゾーン。既定は UTC。 |
戻り値:年を整数で返します。date が null の場合は null。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $year: 注文額を年ごとに集計
db.orders.aggregate([
{ $group: {
_id: { $year: { date: '$orderDate' } },
total: { $sum: '$amount' }
} }
])
出力:
{ "_id": 2026, "total": 892000 }
{ "_id": 2025, "total": 764000 }
📌 注意事項
- 4 桁の年を返す
- date が null のレコードは group 時に null バケットに入る
- 週をまたぐ統計には $year ではなく $isoWeekYear を使う
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q年は何桁ですか?
A4 桁です。例: 2026。
Q$isoWeekYear と異なるのはいつですか?
A年始の ISO 週をまたぐ場合、年が 1 ずれることがあります。
Q年単位のアーカイブに使えますか?
Aはい — $match や $group で $year によるフィルタやグループ化ができます。