MongoDB ObjectId Datouttrekker
Trekk ut og dekod den innebygde tidsstempelet fra en MongoDB ObjectId for å se når et dokument ble opprettet
Inndata
Utdata
Les meg
Hva er en MongoDB ObjectId?
En MongoDB ObjectId er en 12-byte (24 hex-tegn) unik identifikator som brukes som standard _id-felt for hvert dokument i en MongoDB-samling. Strukturen er ikke tilfeldig — den koder meningsfull informasjon. De første fire bytene lagrer et Unix-tidsstempel som representerer sekundet ObjectId-en ble opprettet. De resterende bytene inneholder en tilfeldig verdi og en inkrementerende teller for å garantere unikhet selv når flere dokumenter settes inn i samme sekund på samme maskin.
Siden opprettelsestidsstempelet er innebygd direkte i identifikatoren, kan du fastslå nøyaktig når et dokument ble opprettet uten å lagre et separat createdAt-felt.
Hvordan tidsstempelet er innebygd
En ObjectId som 507f1f77bcf86cd799439011 brytes ned som følger:
| Bytes | Hex-tegn | Formål |
|---|---|---|
| 1–4 | 507f1f77 |
Unix-tidsstempel (sekunder siden epoch) |
| 5–9 | bcf86cd799 |
Tilfeldig verdi (unik per maskin/prosess) |
| 10–12 | 439011 |
Inkrementerende teller |
Konvertering av de første åtte hex-tegnene 507f1f77 til desimal gir 1350844279, som tilsvarer 2012-10-21T21:17:59.000Z.
Verktøybeskrivelse
Dette verktøyet trekker ut det innebygde tidsstempelet fra en hvilken som helst gyldig MongoDB ObjectId og viser det i flere datoformater. Lim inn en ObjectId og se umiddelbart ISO 8601-datoen, UTC-datoen, lokal dato og rått Unix-tidsstempel — ingen databasetilkobling eller kode nødvendig.
Eksempler
| Input ObjectId | Uttrukket dato (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Funksjoner
- Umiddelbar uttrekking: Resultater vises mens du skriver — ingen knappeklikk nødvendig
- Flere formater: Viser ISO 8601, UTC, lokal dato/tid og Unix-tidsstempel
- Inndatavalidering: Avviser alt som ikke er en gyldig 24-tegns hex-streng
- Ingen avhengigheter: Kjører helt i nettleseren uten serverkall eller eksterne biblioteker
- Kopiklar utdata: Hvert utdatafelt kan kopieres individuelt
Bruksområder
- Feilsøking: Sjekk raskt når et dokument ble satt inn uten å spørre databasen
- Revisjon: Verifiser opprettelsestidsstempler i eksporterte ObjectId-lister eller loggfiler
- Etterforskning: Fastslå alderen på poster under datamigrering eller hendelsesundersøkelse
Slik fungerer det
- Verktøyet tar de første 8 hex-tegnene i ObjectId-en.
- Tolker dem som et 32-bit big-endian heksadesimalt heltall for å hente Unix-tidsstempelet i sekunder.
- Multipliserer med 1000 og sender det til et JavaScript
Date-objekt. - Formaterer den resulterende datoen til ISO 8601, UTC-streng, lokalitetsbevisst streng og rå sekunder.
Begrensninger
- Kun opprettelsestidsstempelet trekkes ut. Den tilfeldige delen og tellerdelen av ObjectId-en dekodes ikke fordi de ikke inneholder brukermeningsfull data.
- ObjectId-er generert med et tilpasset eller null-tidsstempel vil returnere en gyldig, men potensielt misvisende dato.
- Det lokale datoformatet avhenger av nettleserens lokale innstillinger.
Vanlige spørsmål
Kan jeg trekke ut en dato fra en hvilken som helst MongoDB ObjectId?
Ja. Enhver standard MongoDB ObjectId — enten generert av MongoDB-driveren, Mongoose, mongosh, eller verktøy som Faker.js — inneholder et gyldig tidsstempel i sine første fire bytes.
Er dette det samme som createdAt-feltet?
Bare hvis ObjectId-en ble generert ved innsettingstidspunktet (standard). Hvis en tilpasset ObjectId ble oppgitt manuelt, kan det innebygde tidsstempelet avvike fra den faktiske opprettelsestiden.
Fungerer dette med ObjectId-er fra eldre MongoDB-versjoner? Ja. Det 4-byte lange tidsstempelprefixet har vært en del av ObjectId-spesifikasjonen siden MongoDB ble lansert. Den eneste endringen over tid har vært i de midterste bytene (maskin-ID vs. tilfeldig verdi), som dette verktøyet ikke dekoder.