Estrattore di Date da MongoDB ObjectId
Estrai e decodifica il timestamp incorporato in un MongoDB ObjectId per vedere quando è stato creato un documento
Input
Output
Leggimi
Cos'è un MongoDB ObjectId?
Un MongoDB ObjectId è un identificatore univoco di 12 byte (24 caratteri esadecimali) utilizzato come campo _id predefinito per ogni documento in una collection MongoDB. La sua struttura non è casuale — codifica informazioni significative. I primi quattro byte memorizzano un timestamp Unix che rappresenta il secondo in cui l'ObjectId è stato creato. I byte rimanenti contengono un valore casuale e un contatore incrementale per garantire l'unicità anche quando più documenti vengono inseriti nello stesso secondo sulla stessa macchina.
Poiché il timestamp di creazione è incorporato direttamente nell'identificatore, è possibile determinare esattamente quando un documento è stato creato senza memorizzare un campo createdAt separato.
Come viene incorporato il timestamp
Un ObjectId come 507f1f77bcf86cd799439011 si scompone come segue:
| Byte | Caratteri esadecimali | Scopo |
|---|---|---|
| 1–4 | 507f1f77 |
Timestamp Unix (secondi dall'epoch) |
| 5–9 | bcf86cd799 |
Valore casuale (univoco per macchina/processo) |
| 10–12 | 439011 |
Contatore incrementale |
Convertendo i primi otto caratteri esadecimali 507f1f77 in decimale si ottiene 1350844279, che corrisponde a 2012-10-21T21:17:59.000Z.
Descrizione dello strumento
Questo strumento estrae il timestamp incorporato da qualsiasi MongoDB ObjectId valido e lo visualizza in più formati di data. Incolla un ObjectId e visualizza immediatamente la data ISO 8601, la data UTC, la data locale e il timestamp Unix grezzo — senza connessione al database né codice.
Esempi
| ObjectId di input | Data estratta (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Funzionalità
- Estrazione immediata: I risultati appaiono mentre si digita — nessun clic su pulsanti richiesto
- Formati multipli: Visualizza ISO 8601, UTC, data/ora locale e timestamp Unix
- Validazione dell'input: Rifiuta qualsiasi valore che non sia una stringa esadecimale valida di 24 caratteri
- Nessuna dipendenza: Funziona interamente nel browser senza chiamate al server o librerie esterne
- Output pronto per la copia: Ogni campo di output può essere copiato singolarmente
Casi d'uso
- Debugging: Verifica rapidamente quando un documento è stato inserito senza interrogare il database
- Auditing: Verifica i timestamp di creazione in liste di ObjectId esportate o file di log
- Analisi forense: Determina l'età dei record durante la migrazione dei dati o l'analisi di un incidente
Come funziona
- Lo strumento prende i primi 8 caratteri esadecimali dell'ObjectId.
- Li interpreta come un intero esadecimale a 32 bit big-endian per ottenere il timestamp Unix in secondi.
- Moltiplica per 1000 e lo passa a un oggetto JavaScript
Date. - Formatta la data risultante in ISO 8601, stringa UTC, stringa con supporto locale e secondi grezzi.
Limitazioni
- Viene estratto solo il timestamp di creazione. Le porzioni casuale e del contatore dell'ObjectId non vengono decodificate perché non contengono dati significativi per l'utente.
- Gli ObjectId generati con un timestamp personalizzato o pari a zero restituiranno una data valida ma potenzialmente fuorviante.
- Il formato della data locale dipende dalle impostazioni della lingua del browser.
FAQ
Posso estrarre una data da qualsiasi MongoDB ObjectId?
Sì. Ogni MongoDB ObjectId standard — che sia generato dal driver MongoDB, da Mongoose, da mongosh o da strumenti come Faker.js — contiene un timestamp valido nei suoi primi quattro byte.
È lo stesso del campo createdAt?
Solo se l'ObjectId è stato generato al momento dell'inserimento (comportamento predefinito). Se è stato fornito manualmente un ObjectId personalizzato, il timestamp incorporato potrebbe differire dall'effettivo momento di creazione.
Funziona con ObjectId di versioni precedenti di MongoDB? Sì. Il prefisso timestamp di 4 byte fa parte della specifica ObjectId sin dalla versione iniziale di MongoDB. L'unica modifica nel tempo ha riguardato i byte centrali (ID macchina vs. valore casuale), che questo strumento non decodifica.