Docs Menu
Docs Home
/ /

Migrar desde la API heredada

En esta página, puedes identificar los cambios que debes realizar para migrar del API heredado al API actual. También puedes aprender sobre las funcionalidades únicas del driver Java actual y los beneficios de migrar al nuevo API.

La API heredada, empaquetada como mongodb-driver-legacy JAR contiene el controlador Java sincrónico heredado y utiliza convenciones de nomenclatura utilizadas en versiones anteriores del controlador.

La API actual, empaquetada como el JAR mongodb-driver-sync, contiene el controlador Java síncrono actual. Incorpora la interfaz MongoCollection como punto de entrada para las operaciones CRUD. No contiene la API heredada.

Para migrar de la API heredada a la API actual, asegúrese de que su código ya no haga referencia a la API heredada y actualícelo cuando sea necesario. Luego, reemplace la API heredada y cualquier archivo JAR de Uber que la contenga con el JAR de la API actual en las dependencias de su aplicación.

Además de actualizar su aplicación para manejar los cambios necesarios, siempre verifique si hay otras diferencias en las opciones y valores de retorno antes de moverla a producción.

Puede seguir usando la API heredada con cada nueva versión de MongoDB Server. Sin embargo, la API heredada no es compatible con las actualizaciones introducidas en MongoDB Server 3.0 o posteriores. Además, la API heredada no es compatible con ciertas funciones del controlador Java actual. Algunas funciones que solo están disponibles en la API no heredada incluyen:

  • Flujos de cambio, una función de MongoDB Server diseñada para monitorear cambios en tiempo real en una sola colección, base de datos o implementación

  • Transacciones ACID multidocumento, que garantizan la atomicidad de las lecturas y guardados en varios documentos y permiten transacciones a través de múltiples operaciones, colecciones, bases de datos, documentos y particiones

  • Colecciones de series de tiempo, que almacenan secuencias de mediciones durante un período de tiempo y mejoran la eficiencia de las consultas para datos de series de tiempo

  • Cifrado consultable, que le permite cifrar cargas de trabajo confidenciales y consultar los datos cifrados

  • Registros Java, o clases Java concisas que separan la lógica empresarial de la representación de datos y reducen el código repetitivo

  • Compatibilidad nativa con POJO, que proporciona un mapeo automático o personalizado entre documentos MongoDB y objetos Java

Para obtener más información sobre las características de la API actual, consulte Notas de la versión.

La siguiente tabla muestra la mayoría de los cambios en los nombres de clases y métodos entre la API heredada y la actual.

Legacy
Corriente

MongoClientOptions

MongoCollection.find().first()

See the following API documentation pages for these methods:

Utilice uno de los siguientes métodos:

Utilice uno de los siguientes métodos:

Además de los puntos anteriores, considere los siguientes cambios:

  • La API actual utiliza clases Options y encadenamiento de métodos en lugar de métodos sobrecargados.

  • La API actual utiliza el formato JSON relajado de forma predeterminada en las versiones del driver 4.0 y posteriores. Si tu aplicación depende del formato JSON estricto, usa el modo estricto al leer o escribir datos. Aprende a especificar el formato JSON en la API actual en la guía Formato de datos de documentos: Extended JSON

  • El tipo genérico predeterminado para MongoCollection en la API actual es org.bson.Document. Puede especificar BasicDBObject como parámetro de tipo si esto facilita la migración.

  • En la API actual, la canalización de agregación que se pasa al método aggregate() acepta una lista de objetos que extienden la interfaz Bson. En la API heredada, acepta una lista de objetos que extienden la interfaz DBObject.

    Las firmas de los métodos también difieren entre las API. Consulte la siguiente documentación de la API para obtener más información:

Esta sección responde preguntas que puedan surgir sobre la API heredada.

Imaginemos que nos conectamos a una colección que contiene únicamente el siguiente documento:

{"_id": 1, "val": 1}

El siguiente ejemplo muestra cómo conectarse a esta colección MongoDB utilizando la API heredada y la API actual:

MongoClient client = new MongoClient(URI);
DB db = client.getDB(DATABASE);
DBCollection col = db.getCollection(COLLECTION);
// Retrieves one document in the collection and prints it
DBObject doc = col.find().one();
System.out.println(doc.toString());
MongoClient client = MongoClients.create(URI);
MongoDatabase db = client.getDatabase(DATABASE);
MongoCollection<Document> col = db.getCollection(COLLECTION);
// Prints the first document retrieved from the collection as JSON
Document doc = col.find().first();
System.out.println(doc.toJson());

La salida del fragmento de código anterior se parece al siguiente:

{"_id": 1, "val": 1}

Para obtener más información sobre las clases y métodos heredados utilizados en el ejemplo anterior, consulte las siguientes páginas de documentación de API:

Consulta la página Migrar desde la API heredada para obtener una lista de las diferencias entre la API heredada y la actual.

El siguiente ejemplo muestra cómo utilizar las clases heredadas MongoClientOptions y MongoClientURI para establecer su preocupación de escritura:

MongoClientURI mongoURI = new MongoClientURI(URI,
MongoClientOptions.builder()
.writeConcern(WriteConcern.W1));
MongoClient client = new MongoClient(mongoURI);
MongoClientSettings options = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString(URI))
.writeConcern(WriteConcern.W1).build();
MongoClient client = MongoClients.create(options);

Para más información sobre las clases y métodos heredados utilizados en el ejemplo anterior, consulta la siguiente documentación de la API:

Consulta la página Migrar desde la API heredada para obtener una lista de las diferencias entre la API heredada y la actual.

Volver

Actualizar

En esta página