$isoWeek (Número da Semana ISO)
Última atualização: 2026-10-09
$isoWeek (Número da Semana ISO)
$isoWeek retorna o número da semana ISO 8601 de uma data (1 a 53). As semanas ISO começam na segunda-feira, e a semana 1 é a semana que contém a primeira quinta-feira — diferente do $week no estilo americano (começa no domingo e pode retornar 0). Ótimo para estatísticas semanais internacionais; geralmente combinado com $isoWeekYear para formar uma chave de ano-semana. timezone define o limite da semana.
| Categoria | Data |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $isoWeek: { 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 da semana ISO (1-53); null se date for null.
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $isoWeek: agregar vendas por semana ISO
db.sales.aggregate([
{ $group: {
_id: { $isoWeek: { date: '$soldAt', timezone: 'Asia/Shanghai' } },
total: { $sum: '$amount' }
} }
])
Saída:
{ "_id": 39, "total": 9800 }
{ "_id": 40, "total": 10450 }
📌 Notas
- As semanas ISO começam na segunda; a semana 1 contém a primeira quinta-feira do ano
- Diferente de $week, $isoWeek nunca retorna 0 — o intervalo é de 1 a 53
- Geralmente combinado com $isoWeekYear e $isoDayOfWeek para uma chave semanal completa
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é o intervalo de retorno?
ADe 1 a 53 — nunca 0.
QQual é a diferença para $week?
A$week começa no domingo e pode retornar 0; $isoWeek segue a ISO 8601 começando na segunda-feira.
QComo as semanas que atravessam anos são contadas?
AA ISO as atribui ao ano que contém a quinta-feira; use $isoWeekYear para o ano correto.