Extractor de Fechas de ObjectId de MongoDB
Extrae y decodifica el timestamp integrado en un ObjectId de MongoDB para ver cuándo fue creado un documento
Entrada
Salida
Leerme
¿Qué es un ObjectId de MongoDB?
Un ObjectId de MongoDB es un identificador único de 12 bytes (24 caracteres hexadecimales) que se utiliza como campo _id predeterminado para cada documento en una colección de MongoDB. Su estructura no es aleatoria: codifica información significativa. Los primeros cuatro bytes almacenan un timestamp Unix que representa el segundo en que se creó el ObjectId. Los bytes restantes contienen un valor aleatorio y un contador incremental para garantizar la unicidad incluso cuando se insertan múltiples documentos en el mismo segundo en la misma máquina.
Dado que el timestamp de creación está integrado directamente en el identificador, es posible determinar exactamente cuándo se creó un documento sin necesidad de almacenar un campo createdAt separado.
Cómo se incrusta el timestamp
Un ObjectId como 507f1f77bcf86cd799439011 se desglosa de la siguiente manera:
| Bytes | Caracteres hexadecimales | Propósito |
|---|---|---|
| 1–4 | 507f1f77 |
Timestamp Unix (segundos desde el epoch) |
| 5–9 | bcf86cd799 |
Valor aleatorio (único por máquina/proceso) |
| 10–12 | 439011 |
Contador incremental |
Al convertir los primeros ocho caracteres hexadecimales 507f1f77 a decimal se obtiene 1350844279, que corresponde a 2012-10-21T21:17:59.000Z.
Descripción de la herramienta
Esta herramienta extrae el timestamp incrustado de cualquier ObjectId de MongoDB válido y lo muestra en múltiples formatos de fecha. Pegue un ObjectId y vea al instante la fecha en formato ISO 8601, fecha UTC, fecha local y timestamp Unix sin procesar — sin necesidad de conexión a la base de datos ni código.
Ejemplos
| ObjectId de entrada | Fecha extraída (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Características
- Extracción instantánea: Los resultados aparecen mientras escribe — sin necesidad de hacer clic en ningún botón
- Múltiples formatos: Muestra ISO 8601, UTC, fecha/hora local y timestamp Unix
- Validación de entrada: Rechaza cualquier valor que no sea una string hexadecimal válida de 24 caracteres
- Sin dependencias: Se ejecuta completamente en el navegador sin llamadas al servidor ni bibliotecas externas
- Salida lista para copiar: Cada campo de salida puede copiarse de forma individual
Casos de uso
- Depuración: Compruebe rápidamente cuándo se insertó un documento sin consultar la base de datos
- Auditoría: Verifique los timestamps de creación en listas de ObjectId exportadas o archivos de registro
- Análisis forense: Determine la antigüedad de los registros durante una migración de datos o una investigación de incidentes
Cómo funciona
- La herramienta toma los primeros 8 caracteres hexadecimales del ObjectId.
- Los interpreta como un entero hexadecimal de 32 bits en formato big-endian para obtener el timestamp Unix en segundos.
- Lo multiplica por 1000 y lo pasa a un objeto
Datede JavaScript. - Formatea la fecha resultante en ISO 8601, string UTC, string adaptada a la configuración regional y segundos sin procesar.
Limitaciones
- Solo se extrae el timestamp de creación. Las partes aleatoria y de contador del ObjectId no se decodifican porque no contienen datos significativos para el usuario.
- Los ObjectIds generados con un timestamp personalizado o igual a cero devolverán una fecha válida pero potencialmente engañosa.
- El formato de fecha local depende de la configuración regional del navegador.
Preguntas frecuentes
¿Puedo extraer una fecha de cualquier ObjectId de MongoDB?
Sí. Todo ObjectId estándar de MongoDB — ya sea generado por el driver de MongoDB, Mongoose, mongosh o herramientas como Faker.js — contiene un timestamp válido en sus primeros cuatro bytes.
¿Es lo mismo que el campo createdAt?
Solo si el ObjectId se generó en el momento de la inserción (el comportamiento predeterminado). Si se proporcionó un ObjectId personalizado de forma manual, el timestamp incrustado puede diferir del tiempo de creación real.
¿Funciona con ObjectIds de versiones anteriores de MongoDB? Sí. El prefijo de timestamp de 4 bytes ha formado parte de la especificación del ObjectId desde el lanzamiento inicial de MongoDB. El único cambio a lo largo del tiempo ha sido en los bytes intermedios (ID de máquina frente a valor aleatorio), que esta herramienta no decodifica.