Extrator de Data de ObjectId do MongoDB
Extraia e decodifique o timestamp incorporado em um ObjectId do MongoDB para ver quando um documento foi criado
Entrada
Saída
Leia-me
O que é um MongoDB ObjectId?
Um MongoDB ObjectId é um identificador único de 12 bytes (24 caracteres hexadecimais) usado como campo _id padrão para cada documento em uma coleção MongoDB. Sua estrutura não é aleatória — ela codifica informações significativas. Os primeiros quatro bytes armazenam um timestamp Unix representando o segundo em que o ObjectId foi criado. Os bytes restantes contêm um valor aleatório e um contador incremental para garantir unicidade mesmo quando múltiplos documentos são inseridos no mesmo segundo na mesma máquina.
Como o timestamp de criação está incorporado diretamente no identificador, você pode determinar exatamente quando um documento foi criado sem precisar armazenar um campo createdAt separado.
Como o timestamp é incorporado
Um ObjectId como 507f1f77bcf86cd799439011 é estruturado da seguinte forma:
| Bytes | Caracteres Hex | Finalidade |
|---|---|---|
| 1–4 | 507f1f77 |
Timestamp Unix (segundos desde a época) |
| 5–9 | bcf86cd799 |
Valor aleatório (único por máquina/processo) |
| 10–12 | 439011 |
Contador incremental |
Convertendo os primeiros oito caracteres hexadecimais 507f1f77 para decimal obtemos 1350844279, que corresponde a 2012-10-21T21:17:59.000Z.
Descrição da ferramenta
Esta ferramenta extrai o timestamp incorporado de qualquer MongoDB ObjectId válido e o exibe em múltiplos formatos de data. Cole um ObjectId e veja instantaneamente a data ISO 8601, a data UTC, a data local e o timestamp Unix bruto — sem necessidade de conexão com banco de dados ou código.
Exemplos
| ObjectId de entrada | Data extraída (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Funcionalidades
- Extração instantânea: Os resultados aparecem enquanto você digita — sem necessidade de cliques em botões
- Múltiplos formatos: Exibe ISO 8601, UTC, data/hora local e timestamp Unix
- Validação de entrada: Rejeita qualquer valor que não seja uma string hexadecimal válida de 24 caracteres
- Sem dependências: Executa inteiramente no navegador, sem chamadas a servidores ou bibliotecas externas
- Saída pronta para copiar: Cada campo de saída pode ser copiado individualmente
Casos de uso
- Depuração: Verifique rapidamente quando um documento foi inserido sem consultar o banco de dados
- Auditoria: Verifique timestamps de criação em listas de ObjectIds exportados ou arquivos de log
- Análise forense: Determine a idade dos registros durante migração de dados ou investigação de incidentes
Como funciona
- A ferramenta obtém os primeiros 8 caracteres hexadecimais do ObjectId.
- Interpreta-os como um inteiro hexadecimal de 32 bits big-endian para obter o timestamp Unix em segundos.
- Multiplica por 1000 e passa o resultado para um objeto
Datedo JavaScript. - Formata a data resultante em ISO 8601, string UTC, string com suporte a localidade e segundos brutos.
Limitações
- Apenas o timestamp de criação é extraído. As partes aleatória e de contador do ObjectId não são decodificadas por não conterem dados relevantes para o usuário.
- ObjectIds gerados com um timestamp personalizado ou zero retornarão uma data válida, mas potencialmente enganosa.
- O formato de data local depende das configurações de localidade do seu navegador.
Perguntas frequentes
Posso extrair uma data de qualquer MongoDB ObjectId?
Sim. Todo MongoDB ObjectId padrão — seja gerado pelo driver MongoDB, pelo Mongoose, pelo mongosh ou por ferramentas como Faker.js — contém um timestamp válido em seus primeiros quatro bytes.
Isso é o mesmo que o campo createdAt?
Somente se o ObjectId foi gerado no momento da inserção (o comportamento padrão). Se um ObjectId personalizado foi fornecido manualmente, o timestamp incorporado pode diferir do tempo real de criação.
Isso funciona com ObjectIds de versões mais antigas do MongoDB? Sim. O prefixo de timestamp de 4 bytes faz parte da especificação do ObjectId desde o lançamento inicial do MongoDB. A única mudança ao longo do tempo ocorreu nos bytes intermediários (ID de máquina vs. valor aleatório), que esta ferramenta não decodifica.