MongoDB ObjectId Datumextraktor
Extrahera och avkoda den inbäddade tidsstämpeln från ett MongoDB ObjectId för att se när ett dokument skapades
Inmatning
Utdata
Readme
Vad är ett MongoDB ObjectId?
Ett MongoDB ObjectId är en 12-byte (24 hex-tecken) unik identifierare som används som standardfältet _id för varje dokument i en MongoDB-samling. Dess struktur är inte slumpmässig — den kodar meningsfull information. De första fyra byten lagrar en Unix-tidsstämpel som representerar sekunden då ObjectId skapades. De återstående byten innehåller ett slumpmässigt värde och en ökande räknare för att garantera unikhet även när flera dokument infogas under samma sekund på samma maskin.
Eftersom skapandetidsstämpeln är inbakad direkt i identifieraren kan du avgöra exakt när ett dokument skapades utan att lagra ett separat createdAt-fält.
Hur tidsstämpeln är inbäddad
Ett ObjectId som 507f1f77bcf86cd799439011 bryts ned enligt följande:
| Bytes | Hex-tecken | Syfte |
|---|---|---|
| 1–4 | 507f1f77 |
Unix-tidsstämpel (sekunder sedan epoch) |
| 5–9 | bcf86cd799 |
Slumpmässigt värde (unikt per maskin/process) |
| 10–12 | 439011 |
Ökande räknare |
Att konvertera de första åtta hex-tecknen 507f1f77 till decimal ger 1350844279, vilket motsvarar 2012-10-21T21:17:59.000Z.
Verktygets beskrivning
Det här verktyget extraherar den inbäddade tidsstämpeln från ett giltigt MongoDB ObjectId och visar den i flera datumformat. Klistra in ett ObjectId och se omedelbart ISO 8601-datumet, UTC-datumet, lokalt datum och den råa Unix-tidsstämpeln — ingen databasanslutning eller kod krävs.
Exempel
| Inmatat ObjectId | Extraherat datum (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Funktioner
- Omedelbar extrahering: Resultaten visas medan du skriver — inga knapptryckningar krävs
- Flera format: Visar ISO 8601, UTC, lokalt datum/tid och Unix-tidsstämpel
- Indatavalidering: Avvisar allt som inte är en giltig hex-sträng med 24 tecken
- Inga beroenden: Körs helt i webbläsaren utan serveranrop eller externa bibliotek
- Kopieringsklart resultat: Varje utdatafält kan kopieras individuellt
Användningsområden
- Felsökning: Kontrollera snabbt när ett dokument infogades utan att fråga databasen
- Granskning: Verifiera skapandetidsstämplar i exporterade ObjectId-listor eller loggfiler
- Forensik: Fastställ åldern på poster vid datamigrering eller incidentutredning
Hur det fungerar
- Verktyget tar de första 8 hex-tecknen i ObjectId.
- Tolkar dem som ett 32-bitars big-endian hexadecimalt heltal för att få Unix-tidsstämpeln i sekunder.
- Multiplicerar med 1000 och skickar det till ett JavaScript
Date-objekt. - Formaterar det resulterande datumet till ISO 8601, UTC-sträng, locale-anpassad sträng och råa sekunder.
Begränsningar
- Endast skapandetidsstämpeln extraheras. De slumpmässiga delarna och räknardelen av ObjectId avkodas inte eftersom de inte innehåller användarmeningsfull data.
- ObjectIds som genererats med en anpassad eller noll-tidsstämpel returnerar ett giltigt men potentiellt missvisande datum.
- Det lokala datumformatet beror på din webbläsares locale-inställningar.
Vanliga frågor
Kan jag extrahera ett datum från vilket MongoDB ObjectId som helst?
Ja. Varje standard MongoDB ObjectId — oavsett om det genererats av MongoDB-drivern, Mongoose, mongosh eller verktyg som Faker.js — innehåller en giltig tidsstämpel i sina första fyra bytes.
Är detta samma sak som fältet createdAt?
Endast om ObjectId genererades vid infogningstillfället (standardbeteendet). Om ett anpassat ObjectId angavs manuellt kan den inbäddade tidsstämpeln skilja sig från den faktiska skapandetiden.
Fungerar detta med ObjectIds från äldre MongoDB-versioner? Ja. Det 4-byte långa tidsstämpelprefixet har varit en del av ObjectId-specifikationen sedan MongoDB:s första release. Den enda förändringen över tid har skett i de mellersta byten (maskin-ID kontra slumpmässigt värde), vilket det här verktyget inte avkodar.