Overview
En esta guÃa, puedes aprender sobre el formato de datos BSON, cómo MongoDB lo utiliza y cómo instalar la librerÃa BSON de forma independiente del driver de Java.
Formato de datos BSON
BSON, o JSON binario, es el formato de datos que MongoDB utiliza para organizar y almacenar datos. Este formato de datos incluye todos los tipos de estructuras de datos JSON y también admite otros tipos, incluidas fechas, enteros de diferentes tamaños, valores de ObjectId y datos binarios. Para obtener una lista completa de los tipos admitidos, consulta la página de BSON types en el manual de MongoDB Server.
El formato binario no es legible por humanos, pero puedes utilizar la librerÃa Java BSON para convertirlo a una representación en JSON. Para **aprender** más información sobre la relación entre estos formatos, consulta el artÃculo JSON y BSON.
MongoDB y BSON
El controlador Java, que utiliza la biblioteca BSON, permite trabajar con datos BSON mediante uno de los tipos de objeto que implementan la interfaz BSON. Los siguientes tipos implementan la interfaz BSON:
Documento (Paquete de librerÃa BSON)
Documento BSON (paquete de la librerÃa BSON)
RawBsonDocument (paquete de la librerÃa BSON)
JsonObject (paquete de librerÃa BSON)
BasicDBObject (paquete JVM)
Instalar la librerÃa BSON
Esta sección muestra cómo agregar la librerÃa BSON como dependencia a su proyecto. Si agregaste el controlador Java como una dependencia en tu proyecto, puedes omitir este paso ya que la librerÃa BSON ya está incluida como una dependencia requerida del controlador. Para obtener instrucciones sobre cómo agregar el driver Java como una dependencia a su proyecto, consulte la guÃa Comience con el Driver Java.
Tip
Lista de Materiales
Recomendamos añadir el Bill of Materials (BOM) del driver JVM a tu aplicación para gestionar las versiones de los artefactos del driver. Esto remueve la necesidad de especificar una versión para cualquier paquete individual cubierto por la BOM, simplificando la gestión de dependencias. Para aprender más, consulta la guÃa Comienza con el controlador Java.
Recomendamos utilizar la herramienta de automatización de construcción Maven o Gradle para gestionar las dependencias de su proyecto. Selecciona entre las siguientes pestañas para ver la declaración de dependencia de esa herramienta:
El siguiente snippet muestra la declaración de dependencia en la dependencies sección de tu archivo pom.xml.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> </dependency> </dependencies>
El siguiente snippet muestra la declaración de dependencia en el objeto dependencies de tu archivo build.gradle.
dependencies { compile 'org.mongodb:bson' }
Si no utilizas una de las herramientas mencionadas anteriormente, puedes incluirla en tu proyecto descargando el archivo JAR directamente desde el repositorio de sonatype.
Preguntas frecuentes
Esta sección responde preguntas que pueden surgir al utilizar el formato de datos BSON.
¿Cómo puedo evitar el error "IllegalArgumentException: Invalid BSON field name"?
Tu aplicación podrÃa arrojar esta excepción si pasas un documento con formato incorrecto a una operación y estás usando el controlador Java v4.7 o anterior.
Nota
En las versiones de controladores v4.8 y posteriores, este mensaje de error fue reemplazado por uno que incluÃa detalles más especÃficos sobre lo que estaba formateado incorrectamente.
Por ejemplo, el controlador lanza este error cuando llamas a una operación de actualización y omites incorrectamente el operador de actualización, como se muestra en el siguiente ejemplo de código:
// incorrectly formatted update document collection.updateOne( new Document().append("name", "fizz"), new Document().append("name", "buzz") );
Para evitar este error, utiliza la clase de creador para la operación correspondiente. El driver ofrece clases de desarrolladores para crear BSON sintácticamente correcto para operaciones de MongoDB. El ejemplo anterior puede expresarse correctamente usando las clases de desarrolladores, como se muestra en el siguiente ejemplo de código:
// Builder class imports import static com.mongodb.client.model.Filters.*; import static com.mongodb.client.model.Updates.*; // ... collection.updateOne(eq("name", "fizz"), set("name", "buzz"));
Para saber más sobre las clases de desarrolladores disponibles, consulta la guÃa de desarrolladores.