$isoWeek (ISO 週番号)

最終更新:2026-10-09

$isoWeek (ISO 週番号)

$isoWeek は日付の ISO 8601 週番号(1 から 53)を返します。ISO の週は月曜日に始まり、最初の木曜日を含む週が第 1 週になります。日曜始まりで 0 を返し得る米国式の $week とは異なります。国際的な週ベースの統計に最適で、$isoWeekYear と組み合わせて年・週のキーを作ることが多いです。timezone が週の境界を決めます。

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

📝 構文

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

⚙️ パラメータ

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

戻り値:ISO 週番号(1〜53)。date が null の場合は null。

▶ 例

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

// $isoWeek: 売上を ISO 週単位で集計
 db.sales.aggregate([
  { $group: {
      _id: { $isoWeek: { date: '$soldAt', timezone: 'Asia/Shanghai' } },
      total: { $sum: '$amount' }
  } }
])

出力:

{ "_id": 39, "total": 9800 }
{ "_id": 40, "total": 10450 }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q戻り値の範囲は?
A1 から 53 です。0 は返しません。
Q$week との違いは?
A$week は日曜始まりで 0 を返すことがあります。$isoWeek は ISO 8601 に従い月曜始まりです。
Q年をまたぐ週はどう数えますか?
AISO では木曜日を含む年に属します。正しい年を知るには $isoWeekYear を使います。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%