Wat is een MongoDB ObjectId?

Een MongoDB ObjectId is een 12-byte (24 hex-tekens) unieke identifier die wordt gebruikt als het standaard _id-veld voor elk document in een MongoDB-collectie. De structuur is niet willekeurig — het bevat betekenisvolle informatie. De eerste vier bytes slaan een Unix-tijdstempel op die de seconde aangeeft waarop de ObjectId is aangemaakt. De overige bytes bevatten een willekeurige waarde en een oplopende teller om uniciteit te garanderen, zelfs wanneer meerdere documenten in dezelfde seconde op dezelfde machine worden ingevoegd.

Omdat het aanmaakmijdstempel direct in de identifier is opgeslagen, kunt u precies bepalen wanneer een document is aangemaakt zonder een apart createdAt-veld op te slaan.

Hoe het tijdstempel is ingebed

Een ObjectId zoals 507f1f77bcf86cd799439011 is als volgt opgebouwd:

Bytes Hex-tekens Doel
1–4 507f1f77 Unix-tijdstempel (seconden sinds epoch)
5–9 bcf86cd799 Willekeurige waarde (uniek per machine/proces)
10–12 439011 Oplopende teller

Het omzetten van de eerste acht hex-tekens 507f1f77 naar decimaal geeft 1350844279, wat overeenkomt met 2012-10-21T21:17:59.000Z.

Beschrijving van de tool

Deze tool extraheert het ingebedde tijdstempel uit elke geldige MongoDB ObjectId en toont dit in meerdere datumformaten. Plak een ObjectId en zie direct de ISO 8601-datum, UTC-datum, lokale datum en het ruwe Unix-tijdstempel — geen databaseverbinding of code vereist.

Voorbeelden

Invoer ObjectId Geëxtraheerde datum (UTC)
507f1f77bcf86cd799439011 2012-10-21T21:17:59.000Z
65a1fc2b0000000000000000 2024-01-13T04:44:27.000Z
000000000000000000000000 1970-01-01T00:00:00.000Z

Functies

  • Directe extractie: Resultaten verschijnen terwijl u typt — geen knoppen vereist
  • Meerdere formaten: Toont ISO 8601, UTC, lokale datum/tijd en Unix-tijdstempel
  • Invoervalidatie: Weigert alles wat geen geldige hex-string van 24 tekens is
  • Geen afhankelijkheden: Werkt volledig in de browser zonder serveraanroepen of externe bibliotheken
  • Kopieerklare uitvoer: Elk uitvoerveld kan afzonderlijk worden gekopieerd

Toepassingen

  • Debuggen: Snel controleren wanneer een document is ingevoegd zonder de database te raadplegen
  • Auditing: Aanmaakmijdstempels verifiëren in geëxporteerde ObjectId-lijsten of logbestanden
  • Forensisch onderzoek: De leeftijd van records bepalen tijdens datamigratie of incidentonderzoek

Hoe het werkt

  1. De tool neemt de eerste 8 hex-tekens van de ObjectId.
  2. Parseert deze als een 32-bit big-endian hexadecimaal geheel getal om het Unix-tijdstempel in seconden te verkrijgen.
  3. Vermenigvuldigt met 1000 en geeft dit door aan een JavaScript Date-object.
  4. Formatteert de resulterende datum naar ISO 8601, UTC-string, locale-bewuste string en ruwe seconden.

Beperkingen

  • Alleen het aanmaakmijdstempel wordt geëxtraheerd. De willekeurige en tellergedeelten van de ObjectId worden niet gedecodeerd omdat ze geen gebruikersrelevante informatie bevatten.
  • ObjectIds die zijn gegenereerd met een aangepast of nul-tijdstempel retourneren een geldige maar mogelijk misleidende datum.
  • Het lokale datumformaat is afhankelijk van de locale-instellingen van uw browser.

Veelgestelde vragen

Kan ik een datum extraheren uit elke MongoDB ObjectId? Ja. Elke standaard MongoDB ObjectId — of deze nu is gegenereerd door de MongoDB driver, Mongoose, mongosh, of tools zoals Faker.js — bevat een geldig tijdstempel in de eerste vier bytes.

Is dit hetzelfde als het createdAt-veld? Alleen als de ObjectId is gegenereerd op het moment van invoeging (de standaard). Als er handmatig een aangepaste ObjectId is opgegeven, kan het ingebedde tijdstempel afwijken van de werkelijke aanmaaktijd.

Werkt dit met ObjectIds van oudere MongoDB-versies? Ja. Het 4-byte tijdstempelprefix maakt sinds de eerste release van MongoDB deel uit van de ObjectId-specificatie. De enige wijziging door de tijd heen betreft de middelste bytes (machine-ID versus willekeurige waarde), die deze tool niet decodeert.