BSON (Binary JSON)
BSON (Binary JSON) es un formato de serialización binaria utilizado por MongoDB para almacenar documentos y llamadas a procedimientos remotos. Extiende los tipos de datos de JSON con tipos adicionales como Date, Binary, ObjectId y Decimal128.
Tipo MIME
application/bson
Tipo
Binario
Compresión
Sin pérdida
Ventajas
- + Rich type system beyond JSON (dates, ObjectId, binary, Decimal128)
- + Efficient for database storage — length-prefixed for fast scanning
- + Supports in-place updates without rewriting entire documents
Desventajas
- − Can be larger than JSON for string-heavy documents
- − Not human-readable — requires tooling to inspect
- − Primarily MongoDB-specific — limited use outside that ecosystem
Cuándo usar .BSON
BSON se usa principalmente con MongoDB. Para serialización binaria de propósito general, considera MessagePack o Protobuf. Para intercambio legible por humanos, usa JSON.
Detalles técnicos
Los documentos BSON comienzan con un entero de 32 bits indicando la longitud del documento, seguido de elementos codificados como tipo+nombre+valor. Soporta 20+ tipos incluyendo double, string, document, array, binary, ObjectId, boolean, Date, null, regex, int32, int64 y Decimal128.
Historia
MongoDB Inc. (anteriormente 10gen) creó BSON en 2009 como formato de almacenamiento nativo de MongoDB. BSON fue diseñado para ser recorrible (los campos tienen prefijo de longitud), lo que permite a MongoDB buscar dentro de documentos sin analizar el documento completo.