$dayOfWeek (Obter Dia da Semana)
Última atualização: 2026-10-09
$dayOfWeek (Obter Dia da Semana)
$dayOfWeek retorna o dia da semana de uma data como inteiro: 1 é domingo, 7 é sábado — igual ao Date.getDay() do JavaScript. Frequentemente usado para estatísticas de tráfego por dia da semana ou agendamento. Observe que a numeração começa no domingo, diferente do $isoDayOfWeek da ISO (segunda-feira é 1), então confirme a semântica necessária. timezone define o limite do dia da semana e tem UTC como padrão.
| Categoria | Data |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $dayOfWeek: { date: <expressão de data>, timezone: <fuso horário> } }
⚙️ Parâmetros
| date | Obrigatório; a expressão de data. |
|---|---|
| timezone | Fuso horário opcional; o padrão é UTC. |
Retorno:Número do dia da semana (1=domingo, 7=sábado); null se date for null.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $dayOfWeek: contar visitas por dia da semana (horário de Pequim)
db.logs.aggregate([
{ $group: {
_id: { $dayOfWeek: { date: '$ts', timezone: 'Asia/Shanghai' } },
cnt: { $sum: 1 }
} }
])
Saída:
{ "_id": 1, "cnt": 1240 }
{ "_id": 2, "cnt": 980 }
📌 Notas
- 1 é domingo, não segunda-feira — uma armadilha comum; use $isoDayOfWeek para começar na segunda
- Combine com $group para estatísticas por dia da semana
- O padrão é UTC; passe Asia/Shanghai para negócios baseados na China
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQue dia é o 1?
A1 é domingo, 7 é sábado — igual ao getDay do JavaScript.
QComo obter numeração começando na segunda-feira?
AUse $isoDayOfWeek: 1 é segunda-feira, 7 é domingo.
QConsigo obter o nome do dia da semana diretamente?
ANão — converta com $switch ou o marcador %A de $dateToString.