stringtranslate.com

BSON

BSON ( / ˈ b s ə n / [2] ) es un formato de intercambio de datos informáticos . 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 tanto como formato de almacenamiento de datos como de 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

BSON tiene una especificación publicada. [4] [5] El elemento superior de la estructura debe ser del tipo objeto BSON y contener uno 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:

Un diferenciador importante de JSON es que BSON contiene tipos que no están presentes en JSON (por ejemplo, datetime, byte array y floats IEEE 754 adecuados) y ofrece un manejo estricto de tipos para varios tipos numéricos en lugar de un tipo "numérico" universal. Para situaciones en las que estos tipos adicionales necesitan representarse de forma textual, se puede utilizar el formato JSON extendido de MongoDB [7] .

Eficiencia

En comparación 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

Un documento como este {"hello": "world"}se almacenará como:

\x16\x00\x00\x00 // tamaño total del documento\x02 // 0x02 = tipo Cadenahola\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')

Véase también

Referencias

  1. ^ "Compatibilidad con BSON en ASP.NET Web API 2.1 - ASP.NET 4.x". Microsoft Docs . 20 de enero de 2014 . Consultado el 12 de enero de 2010 .
  2. ^ abc "Serialización BSON (Binary JSON)" . Consultado el 23 de noviembre de 2021 .
  3. ^ "Proyectos de implementación de BSON" . Consultado el 24 de noviembre de 2021 .
  4. ^ "BSON (Binary JSON): Especificación". bsonspec.org . Consultado el 24 de noviembre de 2021 .
  5. ^ "Introducción a 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 . Archivado desde el original el 2016-05-10 . Consultado el 2018-01-17 .
  7. ^ "Documentación de MongoDB Extended JSON" . docs.mongodb.com . Consultado el 3 de mayo de 2020 .

Enlaces externos