$dayOfWeek (曜日)
最終更新:2026-10-09
$dayOfWeek (曜日)
$dayOfWeek は日付の曜日を整数で返します。1 が日曜日、7 が土曜日で、JavaScript の Date.getDay() と同じ規則です。曜日ベースのトラフィック統計やスケジュール処理によく使われます。月曜日が 1 の ISO 規格の $isoDayOfWeek とは開始曜日が違う点に注意してください。timezone が曜日の境界を決め、既定は UTC です。
| カテゴリ | 日付 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $dayOfWeek: { date: <date-expression>, timezone: <timezone> } }
⚙️ パラメータ
| date | 必須。日付式。 |
|---|---|
| timezone | 任意のタイムゾーン。既定は UTC。 |
戻り値:曜日番号(1=日曜、7=土曜)。date が null の場合は null。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $dayOfWeek: 訪問数を曜日ごとに集計(北京時間)
db.logs.aggregate([
{ $group: {
_id: { $dayOfWeek: { date: '$ts', timezone: 'Asia/Shanghai' } },
cnt: { $sum: 1 }
} }
])
出力:
{ "_id": 1, "cnt": 1240 }
{ "_id": 2, "cnt": 980 }
📌 注意事項
- 1 は日曜日で月曜日ではない。よくある落とし穴。月曜始まりなら $isoDayOfWeek を使う
- $group と組み合わせて曜日ベースの統計を取る
- 既定は UTC。中国向けのビジネスでは Asia/Shanghai を渡す
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q1 は何曜日ですか?
A1 は日曜日、7 は土曜日です。JavaScript の getDay と同じです。
Q月曜始まりの番号を取得するには?
A$isoDayOfWeek を使います。1 が月曜日、7 が日曜日になります。
Q曜日名を直接取得できますか?
Aできません。$switch か $dateToString の %A プレースホルダで変換してください。