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ę?
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ę.
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?
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.
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?
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 .
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.
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.
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.
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.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.