BSON - BSON

BSON
Extensão de nome de arquivo
.bson
Tipo de mídia da Internet application/bson
Tipo de formato Intercâmbio de dados
Estendido de JSON
Local na rede Internet bsonspec .org

BSON ( / b i s ə n / ) é um computador formato de intercâmbio de dados. O nome "BSON" é baseado no termo JSON e significa "JSON binário". É uma forma binária para representar estruturas de dados simples ou complexas , incluindo matrizes associativas (também conhecidas como pares nome-valor), matrizes indexadas de inteiros e um conjunto de tipos escalares fundamentais. O BSON foi originado em 2009 no MongoDB . Vários tipos de dados escalares são de interesse específico para o MongoDB e o formato é usado como armazenamento de dados e formato de transferência de rede para o banco de dados MongoDB, mas pode ser usado independentemente fora do MongoDB. As implementações estão disponíveis em uma variedade de linguagens, como C , C ++ , C # , D , Delphi , Erlang , Go , Haskell , Java , JavaScript , Julia , Lua , OCaml , Perl , PHP , Python , Ruby , Rust , Scala , Smalltalk , e Swift .

Tipos de dados e sintaxe

BSON possui uma especificação publicada. O elemento superior na estrutura deve ser do tipo objeto BSON e conter 1 ou mais elementos, onde um elemento consiste em um nome de campo, um tipo e um valor. Os nomes dos campos são strings. Os tipos incluem:

  • String Unicode (usando a codificação UTF-8 )
  • Inteiro de 32 bits
  • Inteiro de 64 bits
  • duplo ( número de ponto flutuante IEEE 754 de 64 bits )
  • decimal128 ( número de ponto flutuante IEEE 754-2008 de 128 bits ; variante decimal do número inteiro binário (BID)), adequado como portador para dados financeiros confidenciais de casas decimais e números de precisão arbitrária com 34 dígitos decimais de precisão, um valor máximo de aproximadamente 10 6145
  • data e hora sem fuso horário (número inteiro longo de milissegundos desde a época do Unix )
  • matriz de bytes (para dados binários arbitrários)
  • booleano ( truee false)
  • nulo
  • Objeto BSON
  • Array BSON
  • Código JavaScript
  • Dados binários MD5
  • Expressões regulares ( Perl expressões regulares compatíveis ( " PCRE ") versão 8.41 com UTF 8 de apoio)

Um diferenciador importante para JSON é que BSON contém tipos não presentes em JSON (por exemplo, data e hora e matriz de bytes) e oferece tratamento estrito de tipo para vários tipos numéricos em vez de um tipo universal de "número". Para situações em que esses tipos adicionais precisam ser representados de forma textual, o formato JSON estendido do MongoDB pode ser usado.

Eficiência

Comparado ao JSON, o BSON foi projetado para ser eficiente em espaço de armazenamento e velocidade de digitalização. Elementos grandes em um documento BSON são prefixados com um campo de comprimento para facilitar a digitalização. Em alguns casos, o BSON usará mais espaço do que o JSON devido aos prefixos de comprimento e índices de matriz explícitos.

Exemplo

Um documento como {"hello": "world"} será armazenado como:

Bson:
  \x16\x00\x00\x00               // total document size
  \x02                           // 0x02 = type String
  hello\x00                      // field name
  \x06\x00\x00\x00world\x00      // field value (size of value, value, null terminator)
  \x00                           // 0x00 = type EOO ('end of object')

Veja também

Referências

links externos