$isoWeekYear (ISO 週の年)
最終更新:2026-10-09
$isoWeekYear (ISO 週の年)
$isoWeekYear は日付の ISO 週が属する年を返します。$isoWeek と一緒に使います。ISO の週は年をまたぐことがあるため(12 月 31 日が翌年の第 1 週に入る場合など)、週の年は暦の年と異なることがあります。正しい帰属を知れるのは $isoWeekYear だけです。典型的な用途は年・週のグループ化キーの作成です。timezone が週の境界を決めます。
| カテゴリ | 日付 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $isoWeekYear: { date: <date-expression>, timezone: <timezone> } }
⚙️ パラメータ
| date | 必須。日付式。 |
|---|---|
| timezone | 任意のタイムゾーン。既定は UTC。 |
戻り値:ISO 週の年。date が null の場合は null。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $isoWeekYear + $isoWeek: 年・週のグループ化
db.sales.aggregate([
{ $group: {
_id: { y: { $isoWeekYear: { date: '$soldAt' } }, w: { $isoWeek: { date: '$soldAt' } } },
total: { $sum: '$amount' }
} }
])
出力:
{ "_id": { "y": 2026, "w": 39 }, "total": 9800 }
{ "_id": { "y": 2026, "w": 40 }, "total": 10450 }
📌 注意事項
- 年境界の前後では、ISO 週の年が暦の年と 1 年ずれることがある
- $isoWeek と一緒に使う。単体ではほとんど意味がない
- 既定は UTC。統計前にタイムゾーンを統一する
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$year との違いは?
A$year は暦の年です。$isoWeekYear は週の ISO 年で、年またぎの週では異なることがあります。
Qいつ必要ですか?
A年・週のグループ化には、$isoWeekYear と $isoWeek を組み合わせてキーにします。
Q単体で役立ちますか?
Aあまり役に立ちません。$isoWeek と一緒に使って週の帰属年を表します。