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 |
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 (
true
efalse
) - 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
- Comparação de formatos de serialização de dados
- JSON
- CBOR
- Sorriso (JSON binário)
- UBJSON
- Buffers de protocolo
- Formato de mensagem de ação
- Apache Thrift
- MessagePack
- Banco de dados orientado a documentos
- Abstract Syntax Notation One (ASN.1)
- XML binário sem fio (WBXML)
- Intercâmbio Eficiente de XML