MongoDB ObjectId kuupäeva eraldaja
Eralda ja dekodeeri MongoDB ObjectId-sse manustatud ajatempel, et näha, millal dokument loodi
Sisend
Väljund
Loe mind
Mis on MongoDB ObjectId?
MongoDB ObjectId on 12-baidine (24 heksadetsimaalse tähemärgiga) unikaalne identifikaator, mida kasutatakse vaikimisi _id väljana iga dokumendi jaoks MongoDB kollektsioonis. Selle struktuur ei ole juhuslik — see kodeerib sisukat teavet. Esimesed neli baiti salvestavad Unix ajatempli, mis tähistab sekundit, mil ObjectId loodi. Ülejäänud baidid sisaldavad juhuslikku väärtust ja kasvavat loendurit, et tagada unikaalsus isegi siis, kui mitu dokumenti lisatakse samal sekundil samasse masinasse.
Kuna loomise ajatempel on identifikaatorisse otse sisse kodeeritud, saate täpselt määrata, millal dokument loodi, ilma eraldi createdAt välja salvestamata.
Kuidas ajatempel on sisse kodeeritud
ObjectId nagu 507f1f77bcf86cd799439011 jaguneb järgmiselt:
| Baidid | Heksadetsimaalse tähemärgid | Eesmärk |
|---|---|---|
| 1–4 | 507f1f77 |
Unix ajatempel (sekundid algusajast) |
| 5–9 | bcf86cd799 |
Juhuslik väärtus (unikaalne masina/protsessi kohta) |
| 10–12 | 439011 |
Kasvav loendur |
Esimese kaheksa heksadetsimaalse tähemärgi 507f1f77 teisendamine kümnendarvuks annab 1350844279, mis vastab 2012-10-21T21:17:59.000Z.
Tööriista kirjeldus
See tööriist eraldab manustatud ajatempli mis tahes kehtivast MongoDB ObjectId-st ja kuvab selle mitmes kuupäevavormingus. Kleepige ObjectId ja vaadake koheselt ISO 8601 kuupäeva, UTC kuupäeva, kohalikku kuupäeva ja töötlemata Unix ajatemplit — andmebaasi ühendust ega koodi pole vaja.
Näited
| Sisend ObjectId | Eraldatud kuupäev (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Funktsioonid
- Kohene eraldamine: Tulemused ilmuvad kirjutamise ajal — nupuvajutusi pole vaja
- Mitu vormingut: Kuvab ISO 8601, UTC, kohaliku kuupäeva/kellaaja ja Unix ajatempli
- Sisendi valideerimine: Lükkab tagasi kõik, mis ei ole kehtiv 24-tähemärgiline heksadetsimaalstring
- Sõltuvusteta: Töötab täielikult brauseris ilma serveri päringute või väliste teekideta
- Kopeerimiseks valmis väljund: Iga väljundvälja saab eraldi kopeerida
Kasutusjuhud
- Silumine: Kontrollige kiiresti, millal dokument lisati, ilma andmebaasi pärimata
- Auditeerimine: Kontrollige loomise ajatempleid eksporditud ObjectId loendites või logifailides
- Kohtuekspertiis: Määrake kirjete vanus andmete migreerimise või intsidendi uurimise käigus
Kuidas see töötab
- Tööriist võtab ObjectId esimesed 8 heksadetsimaalset tähemärki.
- Parsib need 32-bitise big-endian heksadetsimaalse täisarvuna, et saada Unix ajatempel sekundites.
- Korrutab 1000-ga ja edastab selle JavaScript
Dateobjektile. - Vormindab saadud kuupäeva ISO 8601, UTC stringi, lokaaditeadliku stringi ja töötlemata sekunditena.
Piirangud
- Eraldatakse ainult loomise ajatempel. ObjectId juhuslikku ja loenduri osa ei dekodeerita, kuna need ei sisalda kasutajale mõttekat teavet.
- Kohandatud või nullajatempliga genereeritud ObjectId-d tagastavad kehtiva, kuid potentsiaalselt eksitava kuupäeva.
- Kohalik kuupäevavorming sõltub teie brauseri lokaadisätetest.
KKK
Kas saan eraldada kuupäeva mis tahes MongoDB ObjectId-st?
Jah. Iga standardne MongoDB ObjectId — olgu see genereeritud MongoDB driver'i, Mongoose'i, mongosh-i või selliste tööriistade nagu Faker.js poolt — sisaldab oma esimeses neljas baidis kehtivat ajatemplit.
Kas see on sama mis createdAt väli?
Ainult siis, kui ObjectId genereeriti lisamise ajal (vaikimisi). Kui kohandatud ObjectId esitati käsitsi, võib manustatud ajatempel tegelikust loomisajast erineda.
Kas see töötab vanemate MongoDB versioonide ObjectId-dega? Jah. 4-baidine ajatempli prefiks on olnud ObjectId spetsifikatsiooni osa alates MongoDB esialgsest väljalaskmisest. Ainus muutus aja jooksul on olnud keskmistes baitides (masina ID vs. juhuslik väärtus), mida see tööriist ei dekodeeri.