Parser BSON

BSON (Binary JSON) to binarny format serializacji używany przez MongoDB do przechowywania dokumentów. Rozszerza JSON o dodatkowe typy, takie jak ObjectId, Date, Binary i Decimal128. To narzędzie parsuje pliki BSON i wyświetla zawartość jako JSON z informacjami o typach.

Specyfikacje

Typowe zastosowania

  • Inspekcja plików zrzutów MongoDB (.bson)
  • Debugowanie danych BSON w kolejkach wiadomości lub pamięciach podręcznych
  • Analiza przechwyconych danych protokołu przewodowego MongoDB
  • Konwersja BSON do JSON dla zewnętrznych narzędzi
  • Audyt struktury i typów dokumentów

Funkcje

  • Parsowanie binarnych plików BSON przez przeciągnij-i-upuść lub wybór pliku
  • Dekodowanie danych BSON zakodowanych szesnastkowo
  • Wyświetlanie wszystkich typów BSON, w tym ObjectId, Date, Binary, Regex, Decimal128
  • Konwersja do JSON z rozszerzoną notacją JSON
  • Pokazywanie metadanych dokumentu (rozmiar, liczba pól, maksymalna głębokość)
  • Lista wszystkich ObjectId i dat znalezionych w dokumencie
  • Wyświetlanie rozmiarów pól binarnych i typów rozszerzeń
  • Przeglądarka hex do inspekcji surowych danych binarnych

Przyklady

Prosty dokument BSON

Wypróbuj →

Minimalny dokument BSON z jednym polem: {"hello":"world"}

16 00 00 00 02 68 65 6c 6c 6f 00 06 00 00 00 77 6f 72 6c 64 00 00

BSON zakodowany szesnastkowo

Wypróbuj →

Dokument BSON z ciągiem znaków, liczbą i wartością logiczną: {"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 00

Wskazowki

  • Możesz wkleić dane BSON zakodowane szesnastkowo bezpośrednio, aby je sparsować.
  • Pliki BSON można tworzyć za pomocą: mongoexport --collection=users --out=users.bson
  • ObjectId zawierają znacznik czasu; wyodrębnij za pomocą: new ObjectId().getTimestamp()
  • BSON obsługuje więcej typów niż JSON: daty, dane binarne, wyrażenia regularne i liczby dziesiętne.
  • Maksymalny rozmiar dokumentu BSON w MongoDB to 16 MB.

Zrozumienie Parser BSON

BSON (Binary JSON) to binarny format serializacji używany wewnętrznie przez MongoDB do przechowywania i przesyłania dokumentów. Podczas gdy JSON reprezentuje wszystkie dane jako ciągi znaków, liczby, wartości logiczne, tablice i obiekty, BSON rozszerza to o dodatkowe typy potrzebne bazom danych: ObjectId (12-bajtowy unikalny identyfikator), Date (znaczniki czasu z precyzją do milisekund), Binary (dowolne tablice bajtów), Decimal128 (dokładna arytmetyka dziesiętna) i wyrażenia regularne.

Dokumenty BSON mają prefiks długości, co oznacza, że każdy dokument i osadzony dokument zaczyna się od 4-bajtowego pola rozmiaru. Pozwala to parserom pomijać dokumenty bez ich pełnego dekodowania, umożliwiając wydajne skanowanie i indeksowanie. Każdy element jest oznaczony bajtem typu, po którym następuje nazwa pola jako C-string, a następnie wartość w kodowaniu specyficznym dla typu.

MongoDB przechowuje dokumenty wewnętrznie jako BSON, przesyła je przez protokół przewodowy i eksportuje za pomocą mongodump jako pliki .bson. Zrozumienie BSON jest kluczowe dla debugowania aplikacji MongoDB, analizy plików zrzutów i pracy z protokołem przewodowym. Rozszerzony format JSON zapewnia czytelną dla człowieka reprezentację, która zachowuje informacje o typach BSON.

BSON nie zawsze jest mniejszy niż JSON. Krótkie ciągi znaków i małe liczby mogą być w BSON nawet większe ze względu na narzut bajtu typu i prefiksu długości. Zaletą BSON nie jest rozmiar, lecz szybkość — format z prefiksem długości umożliwia szybkie przechodzenie, a rozszerzone typy zapewniają natywne wsparcie dla dat, danych binarnych i liczb dziesiętnych o wysokiej precyzji bez konwencji kodowania.

ObjectId to 12-bajtowy typ BSON używany jako domyślne _id w dokumentach MongoDB. Zawiera 4-bajtowy znacznik czasu (sekundy od epoki), 5 bajtów losowej wartości (unikalne dla maszyny/procesu) i 3-bajtowy inkrementalny licznik. Ta konstrukcja zapewnia unikalność na rozproszonych serwerach bez żadnej koordynacji. Osadzony znacznik czasu oznacza, że można wyodrębnić czas utworzenia dokumentu za pomocą ObjectId.getTimestamp().

Pliki zrzutów MongoDB (.bson) utworzone przez mongodump to surowe dokumenty BSON połączone ze sobą. Możesz wkleić dane BSON zakodowane szesnastkowo do tego narzędzia, aby sparsować poszczególne dokumenty. Alternatywnie, narzędzie bsondump (dołączone do MongoDB Database Tools) może konwertować pliki .bson do JSON w wierszu poleceń do masowej inspekcji.

← Powrot do wszystkich narzedzi