BSON (Binary JSON)
BSON (Binary JSON) — бинарный формат сериализации, используемый MongoDB для хранения документов и сетевого обмена. BSON расширяет модель данных JSON дополнительными типами (Date, Binary, ObjectId, Decimal128) и предназначен для эффективного обхода и модификации на месте.
MIME-тип
application/bson
Тип
Бинарный
Сжатие
Без потерь
Преимущества
- + Rich type system beyond JSON (dates, ObjectId, binary, Decimal128)
- + Efficient for database storage — length-prefixed for fast scanning
- + Supports in-place updates without rewriting entire documents
Недостатки
- − Can be larger than JSON for string-heavy documents
- − Not human-readable — requires tooling to inspect
- − Primarily MongoDB-specific — limited use outside that ecosystem
Когда использовать .BSON
BSON используется при работе с MongoDB — он является внутренним форматом хранения и сетевого протокола. Для хранения данных вне MongoDB обычно предпочтительнее JSON или MessagePack.
Технические детали
Документы BSON хранят поля как элементы вида «тип-ключ-значение». Каждый документ начинается с его размера в формате int32, что обеспечивает обход без парсинга. Типы включают double, string, document, array, binary, ObjectId (12 байт), datetime, regex, int32, int64, timestamp и Decimal128. Максимальный размер документа — 16 МБ.
История
MongoDB Inc. разработала BSON в 2009 году вместе с MongoDB. Формат был создан для нужд документоориентированной базы данных, требующей быстрого обхода, расширенных типов и атомарных обновлений документов.