BSON
# BSON

BSON è un formato informatico di scambio dati utilizzato principalmente come magazzino dati e formato di trasferimento di rete nel database MongoDB. Si tratta di un formato binario per rappresentare strutture dati semplici e array associativi (chiamati oggetti o documenti in MongoDB). Il nome "BSON" è basato sul termine JSON e significa "JSON Binario" (Binary JSON)

## Tipi di dati e Sintassi

I documenti BSON (oggetti) consistono in liste ordinate di elementi. Ciascun elemento consiste in un nome di campo, un tipo e un valore. I nomi di campo sono stringhe. I tipi includono:

* stringhe
* interi (32 o 64 bit)
* double (numeri a virgola mobile a 64 bit, standard IEEE 754)
* date (numeri interi in millisecondi dal'epoca Unix come riferimento, 1º gennaio 1970)
* byte array (dati binari)
* booleani (true e false)
* NULL
* oggetto BSON
* array BSON
* espressioni regolari
* codice JavaScript

I tipi BSON sono, nominalmente, un superset dei tipi JSON (JSON non include tipi data o byte array, per citarne alcuni)), con la differenza notabile rappresentata dall'assenza di un tipo "numerico" universale, incluso in JSON.

## Efficienza

Comparato a JSON, BSON è progettato per essere efficiente sia per lo spazio richiesto dai dati, sia per la velocità di ricerca. Gli elementi estesi, in un documento BSON, sono dotati di un campo lunghezza di estensione prefissata, al fine di facilitare la ricerca delle informazioni. In alcuni casi, BSON utilizza più spazio di JSON a causa delle lunghezze fisse imposte e degli indici espliciti degli array.

