Menu Docs
Página inicial do Docs
/ /

Migrar da API herdada

Nesta página, você pode identificar as alterações que deve fazer para migrar da API legada para a API atual. Você também pode aprender sobre os recursos exclusivos do atual Java Driver e os benefícios da migração para a nova API.

A API herdada, empacotada como o JAR mongodb-driver-legacy, contém o driver Java síncrono herdado e usa convenções de nomenclatura usadas em versões anteriores do driver.

A API atual, embalada como o mongodb-driver-sync JAR, contém o driver Java síncrono atual. Apresenta a interface do MongoCollection como um ponto de entrada para operações CRUD. Não contém a API legada.

Para executar uma migração da API herdada para a API atual, certifique-se de que seu código não faça mais referência à API herdada, atualizando seu código quando necessário. Em seguida, substitua a API herdada e qualquer JAR uber que a contenha pelo JAR da API atual nas dependências do aplicativo.

Além de atualizar seu aplicativo para lidar com quaisquer alterações necessárias, sempre verifique se há outras diferenças nas opções e valores de retorno antes de movê-lo para a produção.

Você pode continuar a usar a API legada com cada nova versão do MongoDB Server. No entanto, a API legada não suporta quaisquer atualizações introduzidas no MongoDB Server 3.0 ou posterior. Além disso, a API legada não tem suporte para determinados recursos do atual Driver Java. Alguns recursos disponíveis somente na API não legada incluem:

  • Fluxos de alterações, um recurso do MongoDB Server projetado para monitorar alterações em tempo real em uma única coleção, banco de dados ou sistema

  • Transações ACID de vários documentos, que garantem a atomicidade de leituras e gravações em vários documentos e permitem transações em várias operações, coleções, bancos de dados, documentos e fragmentos

  • Coleções de séries temporais, que armazenam sequências de medições ao longo de um período de tempo e melhoram a eficiência da consulta para dados de séries temporais

  • Queryable Encryption, que permite criptografar cargas de trabalho confidenciais e consultar os dados criptografados

  • Registros Java ou classes Java concisas que separam a lógica de negócios da representação de dados e reduzem o código boilerplate

  • Suporte nativo de POJO, que fornece mapeamento automático ou personalizado entre documentos MongoDB e objetos Java

Para saber mais sobre os recursos da API atual, consulte as Notas de versão.

A tabela a seguir mostra a maioria das alterações nos nomes de classe e método entre a API legada e a atual.

Legacy
Current

MongoClientOptions

MongoCollection.find().first()

See the following API documentation pages for these methods:

Além dos itens anteriores, considere as seguintes alterações:

  • A API atual usa Options classes e encadeamento de métodos em vez de métodos sobrecarregados.

  • A API atual usa o formato JSON relaxado por padrão nas versões 4.0 e posteriores do driver. Se o seu aplicativo depender do formato JSON rigoroso, utilize o modo rigoroso ao ler ou gravar dados. Saiba como especificar o formato JSON na API atual no guia Formato de dados do documento: JSON estendido.

  • O tipo genérico padrão para MongoCollection na API atual é org.bson.Document. Você pode especificar BasicDBObject como um parâmetro de tipo se ele facilitar sua migração.

  • Na API atual, o pipeline de agregação que você passa para o método aggregate() aceita uma lista de objetos que estendem a interface do Bson . Na API legada, ela aceita uma lista de objetos que estendem a interface DBObject .

    As assinaturas de método também diferem entre as APIs. Consulte a seguinte documentação da API para obter mais informações:

Esta seção responde a perguntas que possam surgir sobre a API legado .

Imagine que estamos conectando a uma coleção que contém apenas o seguinte documento:

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

O exemplo a seguir mostra como se conectar a esta coleção MongoDB usando a API legado e a API atual:

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());

A saída do trecho de código anterior é semelhante ao seguinte:

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

Para obter mais informações sobre as classes e os métodos legados usados no exemplo anterior, consulte as seguintes páginas de documentação da API:

Consulte a página Migrar da API herdada para obter uma lista de diferenças entre a API legado e a atual.

O exemplo a seguir mostra como usar as classes MongoClientOptions e MongoClientURI legado para definir sua preocupação de gravação:

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 obter mais informações sobre as classes e os métodos legado usados no exemplo anterior, consulte a seguinte documentação da API:

Consulte a página Migrar da API herdada para obter uma lista de diferenças entre a API legado e a atual.

Voltar

atualização

Próximo

Compatibilidade

Nesta página