Введение в BSON
Описание
На этой странице мы обсудили BSON - двоичный JSON.
Что такое BSON
Один объект в BSON называется документом. Документ состоит из нуля или более пар ключ / значение (например, ассоциативные массивы) в двоичном формате.
Типы данных
BSON поддерживает следующие основные типы данных:
- байт: 1 байт, т.е. 8 бит.
- int32: 4 байта, т.е. 32-разрядное целое число со знаком.
- int64: 8 байт, т.е. 64-разрядное целое число со знаком.
- double: 8 байтов, т.е. 64-битная IEEE 754 с плавающей запятой
В следующей таблице описаны остальные спецификации документа BSON:
грамматика | Описание |
---|---|
document :: = int32 e_list "x00" | Документ BSON: init32 относится к общему количеству байтов документа. |
e_list :: = элемент e_list | «» | Последовательность элементов. |
element :: = "x01" e_name double | Плавающая запятая. |
element :: = "x02" Строка e_name | Строка UTF-8. |
element :: = "x03" e_name документ | Встроенный документ |
element :: = "x04" e_name документ | Массив. Например, ['x', 'y'] будет представлен как {'0': 'x', '1': 'y'} |
element :: = "x05" бинарный e_name | Двоичные данные |
element :: = "x06" e_name | Не определено (это устарело) |
element :: = "x07" e_name (байт * 12) | ObjectId |
element :: = "x08" e_name "x00" | Логическое «ложь» |
element :: = "x08" e_name "x01" | Логическое "правда" |
element :: = "x09" e_name int64 | UTC миллисекунды в эпоху UNIX |
element :: = "x0A" e_name | Нулевое значение |
element :: = "x0B" e_name cstring cstring | Регулярное выражение |
element :: = "x0C" e_name строка (байт * 12) | DB Pointer. Это устарело. |
element :: = "x0D" Строка e_name | Код JavaScript. |
element :: = "x0E" Строка e_name | Условное обозначение. |
element :: = "x0F" e_name code_w_s | Код JavaScript с расширением. |
element :: = "x10" e_name int32 | 32-разрядное целое число. |
element :: = "x11" e_name int64 | Отметка. |
element :: = "x12" e_name int64 | 64-разрядное целое число |
element :: = "xFF" e_name | Мин ключ. |
element :: = "x7F" e_name | Макс ключ. |
e_name :: = cstring | Ключевое имя. |
string :: = int32 (byte *) "x00" | Строка. |
cstring :: = (byte *) "x00" | CString. |
двоичный :: = int32 подтип (байт *) | Binary. |
подтип :: = "х00" | Бинарный / Общий. |
подтип :: = "х01" | Функция. |
подтип :: = "x02" | Старый родовой подтип. |
подтип :: = "x03" | UUID. |
подтип :: = "х05" | MD5. |
подтип :: = "х80" | Определяемые пользователем. |
code_w_s :: = int32 строковый документ | Код с областью действия. |
Реализация
Существует несколько библиотек BSON, доступных на разных языках, таких как ActionScript, C, C # / .Net, C ++ или автономные C ++, Delphi, Erlang, Factor, Fantom, Go, Haskell, Java, J2ME (работа в процессе), Lisp, Perl, PHP, Python - с необязательным расширением C, Python 3, Ruby - с необязательным расширением C, Standard ML (SML)
MongoDB , которая является базой данных NoSQL, хранит данные в формате BSON.
Сравнение между BSON и JSON
Для более быстрой навигации в BSON добавлены некоторые дополнительные поля, такие как JSON, например префиксы длины. Из-за этого, хотя он спроектирован так, чтобы занимать меньше места, чем JSON, на практике иногда JSON занимает меньше места.
BSON быстрее, чем JSON, когда дело доходит до кодирования и декодирования.
Предыдущая: Работа с JSONPath и PHP
Далее: Учебник по JSONP
Новый контент: Composer: менеджер зависимостей для PHP , R программирования