Co to jest BSON i czym dokładnie różni się od JSON?

158

Właśnie zaczynam od MongoDB i jedną z rzeczy, które zauważyłem, jest to, że używa BSON do wewnętrznego przechowywania danych. Jednak dokumentacja nie jest dokładnie jasna, czym jest BSON i jak jest używany w MongoDB. Czy ktoś może mi to wyjaśnić, proszę?

Akshat Jiwan Sharma
źródło
Cześć Iwan, sprawdź ten link, zawiera głębokie porównanie JSON i BSON Reference: educba.com/json-vs-bson
Nuwa
@Nuwa Ivan nie zadał pytania, to był Akshat
UuDdLrLrSs

Odpowiedzi:

155

BSON to kodowanie binarne dokumentów podobnych do JSON, którego MongoDB używa podczas przechowywania dokumentów w kolekcjach. Dodaje obsługę typów danych, takich jak data i binarne, które nie są obsługiwane w formacie JSON.

W praktyce nie musisz wiedzieć zbyt wiele o BSON podczas pracy z MongoDB, wystarczy użyć rodzimych typów swojego języka i dostarczonych typów (np. ObjectId) jego sterownika podczas konstruowania dokumentów, a zostaną one zmapowane do odpowiedni typ BSON przez kierowcę.

JohnnyHK
źródło
2
Jeśli więc mongoDb przechowuje dokumenty jako bson, jaki jest typ zwracany podczas wykonywania zapytań do bazy danych? Czy są one zwracane jako json? Czy bson jest zwracany w takiej postaci, w jakiej jest?
Akshat Jiwan Sharma
13
Nie, sterownik MongoDB dla Twojego języka zajmie się konwersją dokumentu do typów danych odpowiednich dla Twojego języka. W miarę możliwości używane są natywne typy danych.
JohnnyHK
2
Czy to oznacza, że ​​jeśli pobiorę dane z dokumentu BSON za pomocą JavaScript , nie dostanę żadnej różnicy typu danych, jaką otrzymam, gdy pobieram za pomocą C / C ++, tj. Liczby będą traktowane jako liczby całkowite, jeśli nie mają żadnego dziesiętnego?
abhisekp
1
@abhisekp w oparciu o wyjaśnienie JohnnyHK i moje ostatnie doświadczenie, myślę, że to, co powiedziałeś, jest prawdą.
nxmohamad
Czy BSON zwróci dokładny typ danych pola kolumny? Albo zwróci go jako ciąg dla wszystkich typów?
mRhNs13
45
  • Co to jest BSON ?

    BSON [bee · sahn], skrót od Binary JSON, to zakodowana binarnie serializacja dokumentów typu JSON.

  • Czym różni się od JSON ?

    BSON został zaprojektowany tak, aby był wydajny w przestrzeni, ale w niektórych przypadkach nie jest dużo bardziej wydajny niż JSON. W niektórych przypadkach BSON zajmuje nawet więcej miejsca niż JSON. Powodem tego jest kolejny z celów projektowych BSON: przemierzalność. BSON dodaje do dokumentów pewne „dodatkowe” informacje, takie jak długość łańcuchów i podobiektów. To przyspiesza przemierzanie.

    BSON jest również zaprojektowany tak, aby był szybki do kodowania i dekodowania. Na przykład liczby całkowite są przechowywane jako 32 (lub 64)-bitowe liczby całkowite, więc nie trzeba ich analizować do iz tekstu. Zużywa to więcej miejsca niż JSON dla małych liczb całkowitych, ale jest znacznie szybsze do przeanalizowania.

    Oprócz zwartości BSON dodaje dodatkowe typy danych niedostępne w JSON, w szczególności typy danych BinData i Date .

Źródło: http://bsonspec.org/

Mehdi Raash
źródło
czy to to samo, co typ danych jsonb, który oznacza binarne dane JSON, rozłożone w postgresql?
PirateApp
13

MongoDB reprezentuje dokumenty JSON w zakodowanym binarnie formacie zwanym BSON za kulisami. BSON rozszerza model JSON, aby zapewnić dodatkowe typy danych i być wydajnym do kodowania i dekodowania w różnych językach.

codergirl22
źródło
12

MongoDB reprezentuje dokumenty JSON w formacie binarnym, więc w tle nazywamy to BSON .

BSON rozszerza model JSON, aby zapewnić dodatkowe typy danych, takie jak Data i binarne, które nie są obsługiwane w JSON, również zapewniają uporządkowane pola, aby było wydajne do kodowania i dekodowania w różnych językach. 

Innymi słowy, możemy powiedzieć, że   BSON to po prostu binarny JSON  ( nadzbiór JSON z kilkoma innymi typami danych, przede wszystkim binarną tablicą bajtów).

Mongodb jako format serializacji JSON zawiera format kodowania do przechowywania i dostępu do dokumentów . po prostu możemy powiedzieć, że BSON to zakodowany binarnie format danych JSON.

więcej artykułów mongoDB: https://om9x.com/blog/bson-vs-json/

Avinash Maurya
źródło
link jest uszkodzony
PlsWork
5

Używając kodowania BSON oprócz JSON, MongoDB uzyskuje możliwość tworzenia indeksów na podstawie wartości znajdujących się w dokumencie JSON w formacie surowym. Pomaga to w wykonywaniu wydajnych zapytań analitycznych, ponieważ systemy NoSQL były znane z braku obsługi indeksów.

Anupam Mahapatra
źródło
1

Ten stosunkowo krótki artykuł daje całkiem dobre wyjaśnienie BSON i JSON: mówi o niektórych problemach z JSON, dlaczego wynaleziono BSON, jakie problemy rozwiązuje w porównaniu z JSON i jakie może to przynieść korzyści.

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

W moim przypadku użycia ten artykuł powiedział mi, że serializacja do JSON będzie działać dla mnie i nie muszę serializować do BSON

Sierść psa
źródło