Analyseur BSON
BSON (Binary JSON) est le format de sérialisation binaire utilisé par MongoDB pour stocker des documents. Il étend JSON avec des types supplémentaires comme ObjectId, Date, Binary et Decimal128. Cet outil analyse les fichiers BSON et affiche le contenu en JSON avec les informations de type.
Specifications
Cas d'utilisation courants
- Inspecter les fichiers de dump MongoDB (.bson)
- Déboguer les données BSON dans les files de messages ou caches
- Analyser les captures du protocole réseau MongoDB
- Convertir du BSON en JSON pour des outils externes
- Auditer la structure et les types de documents
Fonctionnalites
- Analyser des fichiers binaires BSON par glisser-déposer ou sélection de fichier
- Décoder des données BSON encodées en hexadécimal
- Afficher tous les types BSON, y compris ObjectId, Date, Binary, Regex, Decimal128
- Convertir en JSON avec notation JSON étendue
- Afficher les métadonnées du document (taille, nombre de champs, profondeur maximale)
- Lister tous les ObjectId et dates trouvés dans le document
- Afficher les tailles des champs binaires et les types d'extension
- Visionneuse hexadécimale pour l'inspection binaire brute
Exemples
Document BSON simple
Essayer →Un document BSON minimal avec un seul champ : {"hello":"world"}
16 00 00 00 02 68 65 6c 6c 6f 00 06 00 00 00 77 6f 72 6c 64 00 00BSON encodé en hexadécimal
Essayer →Un document BSON avec chaîne, nombre et booléen : {"name":"Alice","age":30,"active":true}
27 00 00 00 02 6e 61 6d 65 00 06 00 00 00 41 6c 69 63 65 00 10 61 67 65 00 1e 00 00 00 08 61 63 74 69 76 65 00 01 00Conseils
- Vous pouvez coller des données BSON encodées en hexadécimal directement pour les analyser.
- Les fichiers BSON peuvent être créés avec : mongoexport --collection=users --out=users.bson
- Les ObjectId contiennent un horodatage ; à extraire avec : new ObjectId().getTimestamp()
- BSON prend en charge plus de types que JSON : dates, binaires, regex et décimaux.
- La taille maximale d'un document BSON dans MongoDB est de 16 Mo.
Comprendre Analyseur BSON
BSON (Binary JSON) est le format de sérialisation binaire utilisé en interne par MongoDB pour stocker et transmettre des documents. Alors que JSON représente toutes les données sous forme de chaînes, nombres, booléens, tableaux et objets, BSON étend cela avec des types supplémentaires dont les bases de données ont besoin : ObjectId (un identifiant unique de 12 octets), Date (horodatages à la milliseconde près), Binary (tableaux d'octets arbitraires), Decimal128 (arithmétique décimale exacte) et expressions régulières.
Les documents BSON sont préfixés par leur longueur, ce qui signifie que chaque document et document intégré commence par un champ de taille de 4 octets. Cela permet aux analyseurs de sauter des documents sans les décoder entièrement, permettant un parcours et une indexation efficaces. Chaque élément est marqué avec un octet de type, suivi du nom de champ sous forme de chaîne C, suivi de la valeur dans un encodage spécifique au type.
MongoDB stocke les documents en BSON en interne, les transmet via le protocole réseau et les exporte avec mongodump sous forme de fichiers .bson. Comprendre le BSON est essentiel pour déboguer les applications MongoDB, analyser les fichiers de dump et travailler avec le protocole réseau. Le format JSON étendu fournit une représentation lisible par l'homme qui préserve les informations de type BSON.
BSON n'est pas toujours plus petit que JSON. Les chaînes courtes et les petits nombres peuvent en fait être plus grands en BSON en raison de l'octet de type et du préfixe de longueur. L'avantage de BSON n'est pas la taille mais la vitesse — le format préfixé par la longueur permet un parcours rapide et les types étendus offrent une prise en charge native des dates, des données binaires et des décimaux de haute précision sans conventions d'encodage.
ObjectId est un type BSON de 12 octets utilisé comme _id par défaut dans les documents MongoDB. Il contient un horodatage de 4 octets (secondes depuis l'epoch), 5 octets de valeur aléatoire (unique par machine/processus) et un compteur incrémental de 3 octets. Cette conception garantit l'unicité entre les serveurs distribués sans aucune coordination. L'horodatage intégré signifie que vous pouvez extraire l'heure de création d'un document avec ObjectId.getTimestamp().
Les fichiers de dump MongoDB (.bson) créés par mongodump sont des documents BSON bruts concaténés. Vous pouvez coller des données BSON encodées en hexadécimal dans cet outil pour analyser des documents individuels. Alternativement, l'utilitaire bsondump (inclus avec MongoDB Database Tools) peut convertir les fichiers .bson en JSON en ligne de commande pour une inspection en masse.