BSON - BSON

BSON
Расширение имени файла
.bson
Тип интернет-СМИприложение / bson[1]
Тип форматаОбмен данными
Расширен сJSON
Интернет сайтbsonspec.org

BSON (/ˈбяsəп/) это компьютер формат обмена данными. Название "BSON" основано на термине JSON и означает «двоичный JSON».[2] Это двоичная форма для представления простых или сложных структуры данных включая ассоциативные массивы (также известные как пары имя-значение), целочисленные индексированные массивы и набор фундаментальных скалярных типов. BSON возник в 2009 году в MongoDB. Некоторые скалярные типы данных представляют особый интерес для MongoDB, и этот формат используется как формат хранения данных и сетевой передачи для базы данных MongoDB, но его можно использовать независимо за пределами MongoDB. Реализации доступны на различных языках, таких как C, C ++, C #, D, Delphi, Erlang, Идти, Haskell, Ява, JavaScript, Юля, Lua, OCaml, Perl, PHP, Python, Рубин, Ржавчина, Scala, Болтовня, и Быстрый.[3]

Типы данных и синтаксис

BSON имеет опубликованную спецификацию.[4][5] Самый верхний элемент в структуре должен относиться к типу объекта BSON и содержать 1 или несколько элементов, причем элемент состоит из имени поля, типа и значения. Имена полей - это строки. Типы включают:

  • Unicode строка (используя UTF-8 кодировка)
  • 32-битное целое число
  • 64-битное целое число
  • двойной (64-битный IEEE 754 число с плавающей запятой)
  • десятичный128 (128-битный IEEE 754-2008 число с плавающей запятой; Вариант Binary Integer Decimal (BID)), подходит в качестве носителя для конфиденциальных финансовых данных с десятичной запятой и чисел произвольной точности с точностью 34 десятичных знака, максимальное значение примерно 106145
  • datetime без часового пояса (длинное целое число миллисекунд с момента Эпоха Unix )
  • байтовый массив (для произвольных двоичных данных)
  • логический (истинный и ложный)
  • ноль
  • Объект BSON
  • BSON массив
  • Код JavaScript
  • MD5 двоичные данные
  • Регулярное выражение (Perl совместимые регулярные выражения ("PCRE ") версия 8.41 с поддержкой UTF-8)[6]

Важное отличие JSON заключается в том, что BSON содержит типы, отсутствующие в JSON (например, datetime и массив байтов), и предлагает строгую к типу обработку для нескольких числовых типов вместо универсального «числового» типа. Для ситуаций, когда эти дополнительные типы должны быть представлены в текстовом виде, расширенный формат JSON MongoDB[7] может быть использован.

Эффективность

По сравнению с JSON, BSON отличается эффективностью как с точки зрения объема памяти, так и с точки зрения скорости сканирования. Большие элементы в документе BSON имеют префикс с полем длины для облегчения сканирования. В некоторых случаях BSON будет использовать больше места, чем JSON из-за префиксов длины и явных индексов массива.[2]

Пример

Такой документ, как {"hello": "world"} будет сохранен как:

Bson:  x16x00x00x00               // общий размер документа  x02                           // 0x02 = тип String  Приветx00                      // имя поля  x06x00x00x00worldx00      // значение поля (размер значения, значение, нулевой терминатор)  x00                           // 0x00 = тип EOO ('конец объекта')

Смотрите также

Рекомендации

  1. ^ «Поддержка BSON в ASP.NET Web API 2.1 - ASP.NET 4.x». Документы Microsoft. 2014-01-20. Получено 2010-01-12.
  2. ^ а б BSON Спецификация
  3. ^ «Проекты внедрения BSON». Получено 20 января 2019.
  4. ^ "BSON (двоичный JSON): Спецификация". bsonspec.org. Получено 2018-01-17.
  5. ^ «Знакомство с NoSQL и MongoDB | Что такое NoSQL? | InformIT». www.informit.com. Получено 2018-01-17.
  6. ^ "regex - Инструменты для представления регулярных выражений MongoDB - документация PyMongo 3.6.0". api.mongodb.com. Получено 2018-01-17.
  7. ^ «Расширенная документация MongoDB JSON». docs.mongodb.com. Получено 2020-05-03.

внешняя ссылка