MongoDB ObjectId Tarih Çıkarıcı
Bir belgenin ne zaman oluşturulduğunu görmek için MongoDB ObjectId içindeki gömülü zaman damgasını çıkarın ve çözümleyin
Girdi
Çıktı
Readme
MongoDB ObjectId Nedir?
MongoDB ObjectId, bir MongoDB koleksiyonundaki her belge için varsayılan _id alanı olarak kullanılan 12 baytlık (24 hex karakterli) benzersiz bir tanımlayıcıdır. Yapısı rastgele değildir — anlamlı bilgiler içerir. İlk dört bayt, ObjectId'nin oluşturulduğu saniyeyi temsil eden bir Unix zaman damgası depolar. Kalan baytlar, aynı makinede aynı saniyede birden fazla belge eklendiğinde bile benzersizliği garanti etmek için rastgele bir değer ve artan bir sayaç içerir.
Oluşturma zaman damgası doğrudan tanımlayıcının içine gömüldüğünden, ayrı bir createdAt alanı saklamadan bir belgenin tam olarak ne zaman oluşturulduğunu belirleyebilirsiniz.
Zaman Damgası Nasıl Gömülür
507f1f77bcf86cd799439011 gibi bir ObjectId şu şekilde ayrıştırılır:
| Baytlar | Hex Karakterler | Amaç |
|---|---|---|
| 1–4 | 507f1f77 |
Unix zaman damgası (epoch'tan bu yana geçen saniyeler) |
| 5–9 | bcf86cd799 |
Rastgele değer (makine/işlem başına benzersiz) |
| 10–12 | 439011 |
Artan sayaç |
İlk sekiz hex karakteri 507f1f77'yi ondalık sayıya dönüştürmek 1350844279 değerini verir; bu da 2012-10-21T21:17:59.000Z tarihine karşılık gelir.
Araç Açıklaması
Bu araç, geçerli herhangi bir MongoDB ObjectId'sinden gömülü zaman damgasını çıkarır ve birden fazla tarih formatında görüntüler. Bir ObjectId yapıştırın ve ISO 8601 tarihi, UTC tarihi, yerel tarih ve ham Unix zaman damgasını anında görün — veritabanı bağlantısı veya kod gerekmez.
Örnekler
| Girdi ObjectId | Çıkarılan Tarih (UTC) |
|---|---|
507f1f77bcf86cd799439011 |
2012-10-21T21:17:59.000Z |
65a1fc2b0000000000000000 |
2024-01-13T04:44:27.000Z |
000000000000000000000000 |
1970-01-01T00:00:00.000Z |
Özellikler
- Anında çıkarma: Siz yazarken sonuçlar görünür — buton tıklaması gerekmez
- Çoklu format: ISO 8601, UTC, yerel tarih/saat ve Unix zaman damgasını görüntüler
- Girdi doğrulama: Geçerli 24 karakterli hex string olmayan her şeyi reddeder
- Bağımlılık yok: Sunucu çağrısı veya harici kütüphane olmadan tamamen tarayıcıda çalışır
- Kopyalamaya hazır çıktı: Her çıktı alanı ayrı ayrı kopyalanabilir
Kullanım Alanları
- Hata ayıklama: Veritabanını sorgulamadan bir belgenin ne zaman eklendiğini hızlıca kontrol edin
- Denetim: Dışa aktarılan ObjectId listelerinde veya log dosyalarında oluşturma zaman damgalarını doğrulayın
- Adli inceleme: Veri taşıma veya olay araştırması sırasında kayıtların yaşını belirleyin
Nasıl Çalışır
- Araç, ObjectId'nin ilk 8 hex karakterini alır.
- Unix zaman damgasını saniye cinsinden elde etmek için bunları 32-bit big-endian hexadecimal tam sayı olarak ayrıştırır.
- 1000 ile çarpar ve bir JavaScript
Datenesnesine iletir. - Elde edilen tarihi ISO 8601, UTC string, yerel ayara duyarlı string ve ham saniye olarak biçimlendirir.
Sınırlamalar
- Yalnızca oluşturma zaman damgası çıkarılır. ObjectId'nin rastgele ve sayaç bölümleri, kullanıcı açısından anlamlı veri taşımadığından çözümlenmez.
- Özel veya sıfır zaman damgasıyla oluşturulan ObjectId'ler geçerli ancak yanıltıcı olabilecek bir tarih döndürür.
- Yerel tarih formatı, tarayıcınızın yerel ayarlarına bağlıdır.
SSS
Herhangi bir MongoDB ObjectId'sinden tarih çıkarabilir miyim?
Evet. MongoDB driver, Mongoose, mongosh veya Faker.js gibi araçlar tarafından oluşturulan her standart MongoDB ObjectId'si, ilk dört baytında geçerli bir zaman damgası içerir.
Bu, createdAt alanıyla aynı şey midir?
Yalnızca ObjectId ekleme zamanında oluşturulduysa (varsayılan durum). Özel bir ObjectId manuel olarak sağlandıysa, gömülü zaman damgası gerçek oluşturma zamanından farklı olabilir.
Bu, eski MongoDB sürümlerinden gelen ObjectId'lerle çalışır mı? Evet. 4 baytlık zaman damgası öneki, MongoDB'nin ilk sürümünden bu yana ObjectId spesifikasyonunun bir parçasıdır. Zaman içindeki tek değişiklik, bu aracın çözümlemediği orta baytlarda (makine kimliği ile rastgele değer) olmuştur.