$week (Obter Número da Semana)
Última atualização: 2026-10-09
$week (Obter Número da Semana)
$week retorna o número da semana de uma data no estilo americano (0 a 53): as semanas começam no domingo, a semana 1 começa com o primeiro domingo do ano, e datas anteriores caem na semana 0. Ele difere do $isoWeek padrão ISO; prefira $isoWeek para estatísticas internacionais. Retorna um inteiro; timezone define o limite da semana e tem UTC como padrão.
| Categoria | Data |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $week: { 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:O número da semana (0-53); null se date for null.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $week: agregar vendas por semana no estilo americano
db.sales.aggregate([
{ $group: {
_id: { $week: { date: '$soldAt', timezone: 'Asia/Shanghai' } },
total: { $sum: '$amount' }
} }
])
Saída:
{ "_id": 38, "total": 8300 }
{ "_id": 39, "total": 9800 }
📌 Notas
- As semanas começam no domingo; datas antes do primeiro domingo do ano ficam na semana 0
- Diferente de $isoWeek: esse começa na segunda-feira e não tem semana 0
- Combine com o ano — semanas que atravessam anos são ambíguas; use $year para desambiguar
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QPor que o 0 aparece?
ADatas entre 1º de janeiro e o primeiro domingo caem na semana 0.
QQual atende negócios internacionais, $week ou $isoWeek?
AUse $isoWeek para negócios internacionais; $week é a convenção americana.
QQual é o máximo?
ADe 0 a 53, diferente dos 1 a 53 de $isoWeek.