BSON nedir ve JSON'dan tam olarak nasıl farklıdır?


158

Sadece MongoDB ile başlıyorum ve fark ettiğim şeylerden biri, dahili olarak veri depolamak için BSON kullanması. Ancak, BSON'un ne olduğu ve MongoDB'de nasıl kullanıldığı hakkında belgeler tam olarak açık değildir. Birisi bana açıklayabilir mi lütfen?


Merhaba Ivan, Bu bağlantıya bakın, JSON ve BSON arasında derin bir karşılaştırma içerir Referans: educba.com/json-vs-bson
Nuwa

@Nuwa Ivan soruyu sormadı, bu Akshat
UuDdLrLrSs

Yanıtlar:


155

BSON , MongoDB'nin belgeleri koleksiyonlarda saklarken kullandığı JSON benzeri belgelerin ikili kodlamasıdır. JSON'da desteklenmeyen Tarih ve ikili gibi veri türleri için destek ekler.

Pratikte, MongoDB ile çalışırken BSON hakkında çok fazla şey bilmek zorunda değilsiniz, sadece belgeleri oluştururken dilinizin yerel türlerini ve sürücüsünün sağlanan türlerini (örneğin ObjectId) kullanmanız yeterlidir ve bunlar sürücü tarafından uygun BSON tipi.


2
Peki mongoDb belgeleri bson olarak saklarsa, veri tabanını sorguladığımızda döndürülen tür nedir? Json olarak döndürülüyor mu?
Akshat Jiwan Sharma

13
Hayır, diliniz için MongoDB sürücüsü, belgeyi dilinize uygun veri türlerine dönüştürmeye özen gösterir. Yerel veri türleri mümkün olduğunca kullanılır.
JohnnyHK

2
Javascript kullanarak BSON belgesinden veri alırsanız , C / C ++ kullanarak aldığımda alacağım gibi herhangi bir veri tipi farkı elde edemezsiniz anlamına gelir, yani sayılar herhangi bir ondalık yoksa tamsayı olarak ele alınır ?
abhisekp

1
@abhisekp, JohnnyHK'nin açıklamasına ve son deneyimlerime dayanarak, söylediklerinin doğru olduğunu düşünüyorum.
nxmohamad

BSON, sütun alanının tam veri türünü döndürecek mi? Ya da tüm türler için String olarak döndürür mü?
mRhNs13

45
  • Ne var BSON ?

    Binary JSON'un kısaltması olan BSON [bee · sahn], JSON benzeri belgelerin ikili kodlanmış serileştirmesidir.

  • JSON'dan farkı nedir?

    BSON, uzayda verimli olacak şekilde tasarlanmıştır, ancak bazı durumlarda JSON'dan çok daha verimli değildir. Bazı durumlarda BSON, JSON'dan daha fazla alan kullanır. Bunun nedeni BSON tasarım hedeflerinden bir diğeri: geçilebilirlik. BSON, belgelere dizelerin uzunluğu ve alt nesneler gibi bazı "ekstra" bilgiler ekler. Bu, geçişi daha hızlı hale getirir.

    BSON ayrıca hızlı kodlama ve kod çözme için tasarlanmıştır. Örneğin, tamsayılar 32 (veya 64) bit tamsayıları olarak saklanır, bu nedenle metne ve metinden ayrıştırılması gerekmez. Bu, küçük tamsayılar için JSON'dan daha fazla alan kullanır, ancak ayrıştırılması çok daha hızlıdır.

    Kompaktlığa ek olarak BSON, JSON'da, özellikle BinData ve Date veri türlerinde bulunmayan ek veri türleri ekler .

Kaynak: http://bsonspec.org/


Bu postgresql ayrıştırılmış ikili JSON veri anlamına gelir jsonb veri türü ile aynı mı?
13:18 PirateApp

13

MongoDB, sahnelerin arkasında BSON adı verilen ikili kodlanmış biçimde JSON belgelerini temsil eder. BSON, ek veri türleri sağlamak ve farklı dillerde kodlama ve kod çözme için verimli olmak üzere JSON modelini genişletir.


12

MongoDB, JSON belgelerini ikili kodlanmış biçimde temsil eder , bu yüzden sahne arkasında BSON diyoruz .

BSON sağlamak için JSON modelini uzanır böyle Tarih ve ikili gibi ek veri türleri değil JSON desteklenen bu kodlama ve farklı dillerde içinde deşifre edilmesi için etkili olabilmesi için de sipariş sağlamak alanları. 

Başka bir deyişle, BSON'un sadece ikili JSON  (bazı daha fazla veri türüne sahip JSON'un bir üst kümesi, en önemlisi ikili bayt dizisi) olduğunu söyleyebiliriz   .

JSON serileştirme formatı olarak kullanılan Mongodb, dokümanları saklamak ve bunlara erişmek için kodlama formatı içerir . BSON'un JSON verileri için ikili kodlanmış bir format olduğunu söyleyebiliriz.

daha fazla mongoDB için Makale: https://om9x.com/blog/bson-vs-json/


bağlantı kopuk
PlsWork

5

JSON'un üstünde BSON kodlaması kullanarak, MongoDB, JSON belgesinin içinde bulunan değerlerin üstünde ham biçimde dizinler oluşturabilir. Bu, NoSQL sisteminin Endeksleri desteklemediği bilinen etkin analitik sorguların yürütülmesine yardımcı olur.


1

Bu nispeten kısa makale, BSON ve JSON'un oldukça iyi bir açıklamasını verir: JSON ile ilgili bazı sorunlardan, BSON'un neden icat edildiğinden, JSON ile karşılaştırıldığında hangi sorunları çözdüğünden ve size nasıl fayda sağlayabileceğinden bahsediyor.

https://www.compose.com/articles/from-json-to-bson-and-back/

Benim kullanım durumumda bu makale bana JSON'a serileştirmenin benim için çalışacağını ve BSON'a serileştirmem gerekmediğini söyledi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.