$toDate (Converter para Data)

Última atualização: 2026-10-09

$toDate (Converter para Data)

$toDate converte um valor em uma Data BSON. Ele passa datas adiante, trata números como timestamps em milissegundos e interpreta strings ISO 8601. Usos típicos: converter strings de tempo de logs em datas para agrupamento por dia ou padronizar timestamps em milissegundos vindos de frontends. Strings inválidas geram erro, então prefira $convert com onError para dados sujos. Entrada null resulta em null. Em comparação com $dateFromString, $toDate tem sintaxe mais simples e detecta automaticamente formatos ISO.

CategoriaConjunto, Condição e Conversão
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $toDate: <expressão> }

⚙️ Parâmetros

expressãoUma data, um timestamp numérico em milissegundos ou uma string ISO.

Retorno:Um Date; null quando a entrada é null

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $toDate: interpretar uma string de tempo como data
db.logs.aggregate([
  { $project: {
      ts: { $toDate: '$timeStr' }
  } }
])

Saída:

{ '_id': 1, 'ts': { '$date': '2026-09-25T08:00:00Z' } }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQuais strings ele consegue interpretar?
AFormatos ISO 8601, ex.: '2026-09-25T08:00:00Z'.
QE timestamps em nível de segundos?
AMultiplique por 1000 antes: { $multiply: ['$ts', 1000] } e então converta.
QComo ele difere de $dateFromString?
A$toDate detecta automaticamente formatos ISO; $dateFromString personaliza formato e fuso horário.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%