Overview
En esta guía, puede aprender sobre el formato de datos BSON, cómo lo usa MongoDB y cómo instalar la biblioteca BSON independientemente del controlador Java de MongoDB.
Formato de datos BSON
BSON, o JSON binario, es el formato de datos que MongoDB utiliza para organizar y almacenar datos. Este formato incluye todos los tipos de estructuras de datos JSON y admite tipos como fechas, enteros de diferentes tamaños, ObjectIds y datos binarios. Para obtener una lista completa de los tipos admitidos, consulte Página del manual del servidorde tipos BSON.
El formato binario no es legible para humanos, pero puedes emplear la librería Java BSON para convertirlo en una representación JSON. Puedes leer más sobre la relación entre estos formatos en nuestro artículo de JSON y BSON.
MongoDB y BSON
El controlador Java de MongoDB, que utiliza la biblioteca BSON, le permite trabajar con datos BSON mediante uno de los tipos de objetos que implementan la interfaz BSON, incluido:
Documento (paquete de biblioteca BSON)
BsonDocument (paquete de biblioteca BSON)
RawBsonDocument (paquete de biblioteca BSON)
JsonObject (paquete de biblioteca BSON)
BasicDBObject (paquete de controlador Java)
Para obtener más información sobre el uso de estos tipos de objetos, consulte nuestra Guía de documentos.
Instalar la biblioteca BSON
Estas instrucciones le muestran cómo agregar la biblioteca BSON como dependencia a su proyecto. Si agregó el controlador Java de MongoDB como dependencia a su proyecto, puede omitir este paso, ya que la biblioteca BSON ya está incluida como dependencia obligatoria del controlador. Para obtener instrucciones sobre cómo agregar el controlador Java de MongoDB como dependencia a su proyecto, consulte la sección de instalación del controlador en nuestra Guía de inicio rápido.
Tip
Lista de materiales
Recomendamos agregar la lista de materiales (BOM) del controlador JVM a su aplicación para administrar las versiones de los artefactos del controlador. Esto elimina la necesidad de especificar una versión para cada paquete individual cubierto por la BOM, lo que simplifica la gestión de dependencias. Para obtener más información, consulte el paso "Agregar la lista de materiales del controlador" de la guía de introducción.
Le recomendamos usar la herramienta de automatización de compilación Maven o Gradle para administrar las dependencias de su proyecto. Seleccione una de las siguientes pestañas para ver la declaración de dependencia de esa herramienta:
El siguiente fragmento muestra la declaración de dependencia en el
dependencies sección de su archivo pom.xml.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>bson</artifactId> </dependency> </dependencies>
El siguiente fragmento muestra la declaración de dependencia en el objeto dependencies en su 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: nombre de campo BSON no válido"?
Su aplicación podría generar esta excepción si pasa un documento con formato incorrecto a una operación y está usando el controlador Java v4.7 o anterior.
Nota
En las versiones del controlador v4.8 y posteriores, este mensaje de error fue reemplazado por uno que incluye detalles más específicos sobre lo que estaba formateado incorrectamente.
Por ejemplo, el controlador genera este error cuando se llama a una operación de actualización y se omite 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, utilice la clase constructora para la operación correspondiente. El controlador ofrece clases constructoras para crear BSON sintácticamente correctos para operaciones de MongoDB. El ejemplo anterior se puede expresar correctamente utilizando las clases constructoras, 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 obtener más información sobre las clases de constructores disponibles, consulta la Guía de constructores.