De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

BSON ( / b i s ə n / ) es un ordenador de formato de datos de intercambio. El nombre "BSON" se basa en el término JSON y significa "JSON binario". [2] Es una forma binaria para representar estructuras de datos simples o complejas que incluyen matrices asociativas (también conocidas como pares nombre-valor), matrices indexadas de números enteros y un conjunto de tipos escalares fundamentales. BSON se originó en 2009 en MongoDB. Varios tipos de datos escalares son de interés específico para MongoDB y el formato se usa como formato de almacenamiento de datos y transferencia de red para la base de datos MongoDB, pero se puede usar de forma independiente fuera de MongoDB. Las implementaciones están disponibles en una variedad de lenguajes como C , C ++ , C # , D , Delphi , Erlang , Go , Haskell , Java , JavaScript , Julia , Lua , OCaml , Perl , PHP , Python , Ruby , Rust, Scala , Smalltalk y Swift . [3]

Tipos de datos y sintaxis [ editar ]

BSON tiene una especificación publicada. [4] [5] El elemento superior en la estructura debe ser de tipo BSON objeto y contiene 1 o más elementos, donde un elemento consta de un nombre de campo, un tipo y un valor. Los nombres de campo son cadenas. Los tipos incluyen:

  • Cadena Unicode (usando la codificación UTF-8 )
  • Entero de 32 bits
  • Entero de 64 bits
  • doble ( número de coma flotante IEEE 754 de 64 bits )
  • decimal128 ( número de coma flotante IEEE 754-2008 de 128 bits ; variante decimal entero binario (BID)), adecuado como portador de datos financieros sensibles al lugar decimal y números de precisión arbitraria con 34 dígitos decimales de precisión, un valor máximo de aproximadamente 10 6145
  • fecha y hora sin zona horaria (número entero largo de milisegundos desde la época de Unix )
  • matriz de bytes (para datos binarios arbitrarios)
  • booleano ( truey false)
  • nulo
  • Objeto BSON
  • Matriz BSON
  • Código JavaScript
  • Datos binarios MD5
  • Expresión Regular ( Perl expresiones regulares compatibles ( " PCRE ") versión 8.41 con soporte UTF-8) [6]

Un diferenciador importante de JSON es que BSON contiene tipos que no están presentes en JSON (por ejemplo, fecha y hora y matriz de bytes) y ofrece un manejo estricto de tipos para varios tipos numéricos en lugar de un tipo de "número" universal. Para situaciones en las que estos tipos adicionales deben representarse de forma textual, se puede utilizar el formato JSON extendido [7] de MongoDB .

Eficiencia [ editar ]

Comparado con JSON, BSON está diseñado para ser eficiente tanto en espacio de almacenamiento como en velocidad de escaneo. Los elementos grandes en un documento BSON tienen como prefijo un campo de longitud para facilitar el escaneo. En algunos casos, BSON utilizará más espacio que JSON debido a los prefijos de longitud y los índices de matriz explícitos. [2]

Ejemplo [ editar ]

Un documento como {"hola": "mundo"} se almacenará como:

Bson :  \ x16 \ x00 \ x00 \ x00  // tamaño total del documento  \ x02  // 0x02 = tipo String  hello \ x00  // nombre del campo  \ x06 \ x00 \ x00 \ x00world \ x00  // valor del campo (tamaño del valor, valor , terminador nulo)  \ x00  // 0x00 = tipo EOO ('fin del objeto')

Ver también [ editar ]

  • Comparación de formatos de serialización de datos
  • JSON
  • CBOR
  • Sonrisa (JSON binario)
  • UBJSON
  • Búferes de protocolo
  • Formato de mensaje de acción
  • Apache Thrift
  • MessagePack
  • Base de datos orientada a documentos
    • MongoDB
  • Notación de sintaxis abstracta uno (ASN.1)
  • XML binario inalámbrico (WBXML)
  • Intercambio XML eficiente

Referencias [ editar ]

  1. ^ "Soporte BSON en ASP.NET Web API 2.1 - ASP.NET 4.x" . Microsoft Docs . 2014-01-20 . Consultado el 12 de enero de 2010 .
  2. ^ a b Especificación BSON
  3. ^ "Proyectos de implementación de BSON" . Consultado el 20 de enero de 2019 .
  4. ^ "BSON (JSON binario): especificación" . bsonspec.org . Consultado el 17 de enero de 2018 .
  5. ^ "Presentación de NoSQL y MongoDB | ¿Qué es NoSQL? | InformIT" . www.informit.com . Consultado el 17 de enero de 2018 .
  6. ^ "regex - Herramientas para representar expresiones regulares de MongoDB - Documentación de PyMongo 3.6.0" . api.mongodb.com . Consultado el 17 de enero de 2018 .
  7. ^ "Documentación JSON ampliada de MongoDB" . docs.mongodb.com . Consultado el 3 de mayo de 2020 .

Enlaces externos [ editar ]

  • Especificación BSON
  • Documentación BSON en el sitio web de MongoDB
  • herramienta bsondump incluida con MongoDB