BSON Ayrıştırıcı
BSON (Binary JSON), MongoDB'nin belgeleri depolamak için kullandığı ikili serileştirme formatıdır. JSON'u ObjectId, Date, Binary ve Decimal128 gibi ek türlerle genişletir. Bu araç BSON dosyalarını ayrıştırır ve içeriği tür bilgisiyle birlikte JSON olarak görüntüler.
Spesifikasyonlar
Yaygin Kullanim Alanlari
- MongoDB döküm dosyalarını (.bson) inceleme
- Mesaj kuyruklarındaki veya önbelleklerdeki BSON verilerini hata ayıklama
- MongoDB wire protokol yakalamaları analiz etme
- Harici araçlar için BSON'u JSON'a dönüştürme
- Belge yapısını ve türlerini denetleme
Ozellikler
- Sürükle-bırak veya dosya seçimi ile BSON ikili dosyalarını ayrıştırma
- Hex kodlu BSON verilerini çözme
- ObjectId, Date, Binary, Regex, Decimal128 dahil tüm BSON türlerini görüntüleme
- Genişletilmiş JSON gösterimi ile JSON'a dönüştürme
- Belge meta verilerini gösterme (boyut, alan sayısı, maksimum derinlik)
- Belgede bulunan tüm ObjectId'leri ve tarihleri listeleme
- İkili alan boyutlarını ve uzantı türlerini görüntüleme
- Ham ikili inceleme için hex görüntüleyici
Ornekler
Basit BSON Belgesi
Deneyin →Tek alanlı minimal bir BSON belgesi: {"hello":"world"}
16 00 00 00 02 68 65 6c 6c 6f 00 06 00 00 00 77 6f 72 6c 64 00 00Hex Kodlu BSON
Deneyin →String, sayı ve boolean içeren bir BSON belgesi: {"name":"Alice","age":30,"active":true}
27 00 00 00 02 6e 61 6d 65 00 06 00 00 00 41 6c 69 63 65 00 10 61 67 65 00 1e 00 00 00 08 61 63 74 69 76 65 00 01 00Ipuclari
- Hex kodlu BSON verilerini doğrudan yapıştırarak ayrıştırabilirsiniz.
- BSON dosyaları şu komutla oluşturulabilir: mongoexport --collection=users --out=users.bson
- ObjectId'ler zaman damgası içerir; şu şekilde çıkarılabilir: new ObjectId().getTimestamp()
- BSON, JSON'dan daha fazla türü destekler: tarihler, ikili veriler, regex ve ondalık sayılar.
- MongoDB'deki maksimum BSON belge boyutu 16MB'dir.
Anlama BSON Ayrıştırıcı
BSON (Binary JSON), MongoDB'nin belgeleri depolamak ve iletmek için dahili olarak kullandığı ikili serileştirme formatıdır. JSON tüm verileri dizeler, sayılar, boolean'lar, diziler ve nesneler olarak temsil ederken, BSON bunu veritabanlarının ihtiyaç duyduğu ek türlerle genişletir: ObjectId (12 baytlık benzersiz tanımlayıcı), Date (milisaniye hassasiyetinde zaman damgaları), Binary (rastgele bayt dizileri), Decimal128 (tam ondalık aritmetik) ve düzenli ifadeler.
BSON belgeleri uzunluk öneklidir, yani her belge ve gömülü belge 4 baytlık bir boyut alanıyla başlar. Bu, ayrıştırıcıların belgeleri tam olarak çözmeden atlayabilmesini sağlayarak verimli tarama ve indekslemeyi mümkün kılar. Her öğe bir tür baytıyla etiketlenir, ardından alan adı C-string olarak ve ardından türe özgü kodlamada değer gelir.
MongoDB belgeleri dahili olarak BSON formatında depolar, wire protokolü üzerinden iletir ve mongodump ile .bson dosyaları olarak dışa aktarır. BSON'u anlamak, MongoDB uygulamalarının hata ayıklaması, döküm dosyalarının analizi ve wire protokolüyle çalışma için önemlidir. Genişletilmiş JSON formatı, BSON tür bilgisini koruyan, insanlar tarafından okunabilir bir temsil sağlar.
BSON her zaman JSON'dan küçük değildir. Kısa dizeler ve küçük sayılar, tür baytı ve uzunluk öneki yükü nedeniyle BSON'da aslında daha büyük olabilir. BSON'un avantajı boyut değil hızdır — uzunluk önekli format hızlı gezinme sağlar ve genişletilmiş türler, tarihler, ikili veriler ve yüksek hassasiyetli ondalık sayılar için yerel destek sunar.
ObjectId, MongoDB belgelerinde varsayılan _id olarak kullanılan 12 baytlık bir BSON türüdür. 4 baytlık bir zaman damgası (epoch'tan bu yana saniye), 5 baytlık rastgele değer (makine/işlem başına benzersiz) ve 3 baytlık artan sayaç içerir. Bu tasarım, herhangi bir koordinasyon olmadan dağıtık sunucular arasında benzersizliği garanti eder. Gömülü zaman damgası, bir belgenin oluşturulma zamanını ObjectId.getTimestamp() ile çıkarabileceğiniz anlamına gelir.
Mongodump tarafından oluşturulan MongoDB döküm dosyaları (.bson), art arda birleştirilmiş ham BSON belgeleridir. Bireysel belgeleri ayrıştırmak için hex kodlu BSON verilerini bu araca yapıştırabilirsiniz. Alternatif olarak, bsondump yardımcı programı (MongoDB Database Tools ile birlikte gelir) .bson dosyalarını komut satırında toplu inceleme için JSON'a dönüştürebilir.