Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Notas de versão

Saiba mais sobre os novos recursos, melhorias e correções introduzidas nas seguintes versões do MongoDB Java Reactive Streams Driver:

Importante

O driver Reactive Streams 5.11.1 do Java inclui correções para os seguintes CVEs:

Para obter as informações mais recentes sobre as atualizações de segurança do MongoDB , consulte Boletins de segurança do MongoDB .

Para saber mais sobre esta versão, consulte as 511v..1 Notas de versão no GitHub.

A versão do driver 5.11 não inclui nenhuma alteração, correção ou recurso que se aplique ao driver Java Reactive Streams.

Para saber mais sobre esta versão, consulte as Notas de5 versão do11 v. no GitHub.

A versão do driver 5.10 inclui as seguintes alterações, correções e recursos:

  • Adiciona o estágio de agregação $scoreFusion, que combina e normaliza as pontuações de vários pipelines de pesquisa. Este estágio requer o MongoDB 8.2 ou posterior.

  • Adiciona uma API de construtores fluentes para o estágio de agregação $score. Use esta API para configurar a normalização de pontuação, a ponderação e os detalhes de pontuação. Este recurso requer MongoDB 8.2 ou posterior.

  • Adiciona as opções parentFilter e nestedOptions, que permitem incorporações aninhadas e arrays de incorporações em queries $vectorSearch.

Para saber mais sobre esta versão, consulte as Notas de5 versão do10 v. no GitHub.

O 5.9.2 a versão do patch do driver inclui as seguintes alterações:

  • Corrige um problema em que ProxySettings.toString() incluía o5 nome de usuário e a senha do proxy SOCKS, o que fazia com que essas credenciais aparecessem nos registros do aplicação . Esse problema afeta as versões do driver 4.11.0 de 5.9.1 a. Para saber mais, consulte JAVA-6266 e CVE-202618710-.

Aviso

Suprima a mensagem de registro sem atualizar

Se você usa a autenticação de proxy SOCKS5 e não pode fazer upgrade para a v5.9.2, defina o registrador org.mongodb.driver.client para WARN ou superior para suprimir a mensagem de construção do cliente. Não recomendamos isso como uma medida de longo prazo, porque ele silencia informações de diagnóstico valiosas para o suporte e não remove as credenciais que já estão gravadas nos logs existentes.

Para saber mais sobre esta versão, consulte as 59v..2 Notas de versão no GitHub.

A versão do driver 5.9 inclui as seguintes alterações, correções e recursos:

  • Corrige um bug em que o método MongoClient.getTimeout() sempre retornava null.
  • Promove query de prefixo, sufixo e substring do Queryable Encryption (QE) para disponibilidade geral (GA). Esses tipos de query são compatíveis com o MongoDB 9.0 e posterior. Para saber mais sobre o QE, consulte Criptografia em execução.

  • Renomeia a API de criptografia explícita para query de string QE de Text para String. Para realizar uma query de string QE, faça as seguintes alterações:

    • Use a classe StringOptions em vez de TextOptions.

    • Use o método EncryptOptions.stringOptions() em vez de textOptions().

    • Use o método EncryptOptions.getStringOptions() em vez de getTextOptions().

    • Defina o algoritmo de criptografia como "String".

  • Atualiza a versão libmongocrypt para 1.20.0.

Para saber mais sobre esta versão, consulte as Notas de5 versão do9 v. no GitHub.

O 5.8.1 a versão do patch do driver inclui as seguintes alterações:

  • Corrige um bug em que o método MongoClient.getTimeout() sempre retornava null.

Para saber mais sobre esta versão, consulte as 58v..1 Notas de versão no GitHub.

A versão do driver 5.8 inclui as seguintes alterações, correções e recursos:

  • Adiciona uma API de construtores digitados para definições de índice de pesquisa vetorial.

  • Adiciona suporte para o estágio de agregação $rerank . Quando conectado a um cluster Atlas executando o MongoDB 8.3 ou posterior, você pode usar o método construtor Aggregates.rerank() para criar este estágio.

  • Adiciona suporte para o operador vectorSearch em um estágio de pipeline $search. Você pode usar o método de construtores SearchOperator.vectorSearch() para realizar pesquisa vetorial ANN (vizinho mais próximo aproximado) ou SearchOperator.vectorSearchExact() para pesquisa ENN (vizinho mais próximo exato). O VectorSearchOperator retornado suporta um método filter() para aplicar pré-filtros lexicais.

  • Adiciona suporte para configurar a origem armazenada em definições de índice de pesquisa vetorial usando o método storedSource() na classe VectorSearchIndexDefinition.

  • Adiciona suporte para solicitar campos de origem armazenados em resultados $vectorSearch usando o método returnStoredSource() na classe VectorSearchOptions.

  • Otimiza o desempenho de codificação e decodificação de RawBsonDocument eliminando alocações intermediárias.

  • Corrige uma falha de resolução de pacote OSGi quando o Micrometer não está presente.

  • Adiciona documentação Javadoc à classe MongodbObservation e MongodbObservationContext.

  • Atualiza a versão libmongocrypt para 1.18.1.

Para saber mais sobre esta versão, consulte as Notas de5 versão do8 v. no GitHub.

O 5.7.1 a versão do patch do driver inclui as seguintes alterações:

  • Corrige avisos do Javadoc na integração do Micrometer.

  • Marca as importações do Micrometer OSGi como opcionais para resolver problemas de resolução de pacotes em ambientes de tempo de execução do OSGi.

Para saber mais sobre esta versão, consulte as 57v..1 Notas de versão no GitHub.

A versão do driver 5.7 inclui as seguintes alterações, correções e recursos:

  • Atualiza os métodos commitTransaction() e abortTransaction() para retornar editores frios. Como resultado, esses métodos não são executados até que você assine o editor retornado.
  • Importante: uma versão menor futura eliminará o suporte para a versão do MongoDB Server 4.2 e aumentará a versão mínima suportada 4.4 para. Essa alteração se alinha aos Cronogramas do ciclo de vida do software MongoDB .

    Recomendamos fazer alterações em seu aplicativo para acomodar alterações interruptivas. Para saber mais sobre a atualização da versão do servidor, consulte a seção Notas da versão no manual do MongoDB Server.

  • Adiciona suporte a Scala 3.

  • Adiciona suporte de auto-embedding como parte de APIs de pesquisa vetorial.

  • Adiciona suporte de rastreamento de Micrometer/OpenTelemetry ao driver de fluxos reativos e inclui melhorias gerais de suporte de Micrometer.

  • Adiciona suporte a loop assíncrono seguro para a pilha com padrão de eléctrico para evitar erros de Stack Overflow.

  • Melhora o tratamento de tempo limite no lado do cliente para melhor levar em conta as variações de tempo de ida e volta (RTT), além de várias pequenas melhorias relacionadas ao tempo limite.

  • Reutiliza ConnectionSource para evitar seleção extra de servidor .

  • Restaura o caminho do codec otimizado para codificação RawBsonDocument, corrigindo uma regressão de desempenho.

  • Libera a conexão entre respostas getMore vazias em AsyncCommandCursor, evitando o esgotamento do pool de conexões quando change streams ociosos atingem maxPoolSize.

  • O cliente de criptografia agora usa writeConcern maioria.

  • Lida com erros inesperados de fim de fluxo do KMS.

  • Corrige a análise JsonBsonEncoder de JsonPrimitive números, onde números formatados cientificamente foram analisados como Ints ou Longs simples.

  • Simplifica os nomes de thread ServerMonitor e remove o caractere =, que alguns sistemas de monitoramento não podem processar.

  • Corrige a decodificação Kotlin BSON de opcionais.

  • Atualiza libmongocrypt para 1.17.3.

  • Utiliza ZstdInputStreamNoFinalizer para descompressão Zstandard.

  • Atualiza o Netty para a versão mais recente.

  • Atualiza o Snappy para as correções de segurança mais recentes.

  • Atualiza o JUnit 5 para a versão mais recente.

  • Alinha o nível de log para aviso ao remover um servidor do cluster.

A versão do driver 5.6 inclui as seguintes alterações, correções e recursos:

  • Adiciona suporte experimental para queries de prefixo, sufixo e substring de Queryable Encryption . Para saber mais sobre a QE, consulte criptografia em execução.

    Observação

    Recurso experimental

    As queries de prefixo, sufixo e substring do Queryable Encryption são instáveis, e sua segurança não é garantida até que estejam geralmente disponíveis (GA). Use-os apenas em cargas de trabalho experimentais.

  • Adiciona um campo nsType a objetos ChangeStreamDocument. Este campo contém o tipo de namespace (COLLECTION, TIMESERIES ou VIEW) do evento de alteração.

  • Adiciona suporte experimental de tempo limite de operação do lado do cliente (CSOT) para autenticação OIDC.

    Observação

    Recurso experimental

    O recurso CSOT é experimental e pode mudar em futuras versões de drivers.

  • Quando o timeoutMS está configurado para CSOT, o driver ignora o valor da configuração de conexão do maxWaitTime.

  • Adiciona um método appendMetadata() à classe MongoClient . Você pode usar este método para anexar metadados aos metadados de um cliente existente. O tamanho máximo dos metadados é 512 MB.

  • Adiciona um construtor público à classe RewrapManyDataKeyOptions .

  • Funde as interfaces AsyncReadOperation e AsyncWriteOperation nas interfaces ReadOperation e WriteOperation. Você pode criar operações de leitura e escrita utilizando métodos de construtor na classe Operations.

  • Descontinua a constante MongoNamespace.COMMAND_COLLECTION_NAME .

  • Corrige um bug que impediu a reautenticação do OIDC dentro de uma sessão.

  • Ao serializar um POJO anotado com @BsonDiscriminator, se o readName da propriedade corresponder à chave discriminadora, o driver serializa o campo apenas uma vez.

  • Depois de chamar o método next() ou tryNext() em uma instância do CommandCursorResult, o driver limpa a propriedade CommandCursorResult.results para liberar memória.

  • A classe PojoBuilderHelper cria modelos de propriedade que incluem propriedades de classes abstratas e interfaces.

  • O driver publica e registra os seguintes eventos quando a topologia do cluster é alterada:

    • ClusterOpeningEvent: publicado quando a topologia é aberta

    • ClusterDescriptionChangedEvent: publicada quando a descrição da topologia é alterada

    • ClusterClosedEvent: publicado quando a topologia fecha

  • O driver lança um MongoStalePrimaryException quando o membro primário do conjunto de réplicas se torna obsoleto por um dos seguintes motivos:

    • Um novo membro primary é eleito ou descoberto.

    • O valor do campo electionId ou setVersion no membro primário não corresponde aos valores destes campos nos outros membros do conjunto de réplicas.

    Para saber mais sobre conjuntos de réplicas, consulte Replicação no manual do MongoDB Server.

O 5.5.1 a versão do patch do driver inclui as seguintes alterações:

  • Corrige um problema em que a reautenticação do OIDC falhava quando acionada por uma operação executada em uma sessão, incluindo operações executadas em uma transação.

Importante

Remoção de suporte para o MongoDB Server 4.0

Driver Java Reactive Streams v5.5 remove o suporte para o MongoDB Server 4.0. Para saber mais sobre versões compatíveis do servidor, consulte Compatibilidade.

A versão do driver 5.5 inclui as seguintes alterações, correções e recursos:

  • Adiciona suporte para a opção connectTimeoutMS ao usar a camada de transporte TLS padrão do Java Reactive Streams.
  • Introduz melhorias de desempenho que são refletidas nos parâmetros de desempenho do driver. Para visualizar os resultados dos testes de benchmark de desempenho, consulte a seguinte seção Melhorias de Desempenho.

As tabelas nesta seção mostram os resultados dos testes de desempenho para o driver Java síncrono. Os testes foram realizados em um sistema do MongoDB Server 8.0 com a seguinte configuração:

  • Executando em localhost com latência de rede insignificante. Em ambientes de alta latência, você poderá ver melhorias de desempenho menos significativas.

  • Autenticação desativada.

  • TLS desabilitado.

Esperemos aumentos de desempenho semelhantes para todos os drivers do MongoDB Java porque eles compartilham a API driver-core aprimorada.

A tabela a seguir mostra os resultados dos testes de desempenho para a v5.5 do driver configurado com configurações de transporte padrão. Cada linha inclui a funcionalidade testada, a melhoria percentual no desempenho e a pontuação z.

funcionalidade
Melhoria percentual
Z-score

Decodificação profunda de BSON

19.44%

5.4

Codificação BSON profunda

102%

22.8

Encontre muitos e esvazie o cursor

25.08%

13.72

Encontrar um por ID

2.7%

3.16

Decodificação BSON plana

31.2%

9.38

Codificação BSON plana

199.5%

12.34

Decodificação completa de BSON

16.5%

7.23

Codificação completa de BSON

147.3%

10.39

JSON-LD importação de múltiplos arquivos

21.8%

8.21

Inserção em massa do cliente com documentos grandes

91.3%

24.44

Inserção em massa de collections com documentos grandes

96.5%

8.79

Inserção em massa com documentos grandes

93.3%

8.11

Inserção em massa com documentos pequenos

39.3%

5.72

Insira um com documentos grandes

82.4%

7.28

Inserção em massa do cliente com documentos pequenos

49.5%

17.99

Inserção em massa de collections com documentos pequenos

47.8%

6.44

A tabela a seguir mostra os resultados dos testes de desempenho para v5.5 do driver configurado com as configurações de transporte Netty. Cada linha inclui a funcionalidade testada, a melhoria percentual no desempenho e a pontuação z.

funcionalidade
Melhoria percentual
Z-score

Encontre muitos e esvazie o cursor

40.3%

14.81

Encontrar um por ID

4.4%

4.12

JSON-LD importação de múltiplos arquivos

16.9%

3.77

Inserção em massa do cliente com documentos grandes

54.8%

14.49

Inserção em massa de collections com documentos grandes

104.9%

38.72

Inserção em massa com documentos grandes

74.6%

65.55

Insira um com documentos grandes

66.6%

58.65

Inserção em massa do cliente com documentos pequenos

36.1%

15.41

Inserção em massa de collections com documentos pequenos

39.3%

37.38

Inserção em massa com documentos pequenos

35.1%

41.51

Dica

Para saber mais sobre como realizamos testes de benchmark de desempenho de drivers, consulte a especificação de benchmarking de desempenho.

A versão do driver 5.4 inclui as seguintes alterações, correções e recursos:

  • Suporta $lookup operações para CSFLE e QE. Para saber mais, consulte as seguintes referências no manual do servidor:

  • Apresenta uma Lista de materiais (BOM) para gerenciar versões de artefatos MongoDB JVM que você pode usar em seu aplicação. Para exibir instruções sobre como adicionar o BOM ao seu aplicação, consulte a etapa Adicionar a lista de materiais do driver do tutorial Baixar e instalar.

  • Atualiza as dependências do Amazon Web Services SDK para 2.30.31 e 1.12.782 para testar o mecanismo de autenticação MONGODB-AWS.

  • Adiciona uma opção de classificação às classes ClientUpdateOneOptions e ClientReplaceOneOptions. Essa alteração permite definir uma ordem de classificação para operações de atualização e substituição em gravações em massa do cliente. Para **aprender** mais, consulte as seções Atualizar operações e Substituir operações do guia Operações de gravação em massa.

  • Adiciona suporte do Kubernetes para autenticação OIDC. Para saber mais, consulte a seção MONGODB-OIDC: Kubernetes do guia Mecanismos de autenticação empresarial.

  • Adiciona suporte de primeira classe para os seguintes operadores de query do MongoDB Search:

    • phrase

    • regex

    • queryString

    • equals

    • moreLikeThis

    • in

    • wildcard

    Para saber mais, consulte a seção pesquisa MongoDB do guia de agregação.

  • Atualiza cursores para atualizar a configuração timeoutMS quando você chama close() sem afetar o tempo limite da operação.

  • Permite utilizar um índice ao chamar o método distinct() especificando uma opção hint.

Para visualizar uma lista completa de alterações nesta versão, consulte as notas de5 versão v.4 no GitHub.

A versão do driver 5.3 inclui as seguintes alterações, correções e recursos:

  • Importante: a próxima versão menor eliminará o suporte para a versão do MongoDB Server 4.0 e aumentará a versão mínima suportada 4.2 para. Recomendamos fazer alterações em seu aplicação para acomodar alterações significativas. Consulte a seção Notas de versão no manual do servidor para saber mais sobre a atualização.

  • Adiciona a classe BinaryVector para implementar o Subtipo Binário BSON 9 para armazenamento e recuperação vetorial. Esta classe fornece armazenamento mais eficaz de valores em comparação com uma lista de instâncias do Double. Você pode criar os seguintes tipos de vetores com base no tipo de elementos que seu vetor contém:

    • Int8BinaryVector: Vetor de números inteiros assinados com 8bits

    • Float32BinaryVector: Vetor de números de ponto flutuante

    • PackedBitBinaryVector: Vetor quantizado binário (em versão beta e sujeito a alterações antes de se tornar disponível ao público em geral)

    Para saber mais sobre este recurso, consulte Quantização vetorial na documentação do Atlas. Para saber mais sobre esse tipo, consulte a documentação da API BinaryVector.

  • Remove a imparcialidade explícita da implementação do pool de conexões . Esta alteração pode contribuir para um melhor rendimento quando você usa uma instância MongoClient em muitos threads de aplicação . No entanto, essa alteração pode causar um aumento na latência da cauda.

  • Adiciona uma opção de classificação aos métodos updateOne() e replaceOne(). Essa alteração também permite que você defina uma classificação como uma opção ao criar instâncias ReplaceOneModel e UpdateOneModel. Para saber mais, consulte os guias Atualizar documentos, Substituir documentos e Operações de gravação em massa.

  • Implementa uma API de gravação em massa do cliente que permite executar operações de gravação em vários bancos de dados e coleções na mesma chamada. Para saber mais sobre esse recurso, consulte a seção Gravação em massa do cliente do guia de operações em massa.

Importante

Remoção de suporte para o MongoDB Server 3.6

Driver Java Reactive Streams v5.2 remove o suporte para o MongoDB Server 3.6. Para saber mais sobre versões compatíveis do servidor, consulte Compatibilidade.

A versão do driver 5.2 inclui as seguintes alterações, correções e recursos:

  • Permite definir um tempo limite de operações do lado do cliente (CSOT). Esse recurso permite que você defina um tempo limite único na sua instância MongoClient que se aplica a todas as operações realizadas com esse cliente. Para saber mais, consulte o guia Limitar o tempo de execução do servidor.

    Se, e somente se, a funcionalidade CSOT estiver habilitada, as seguintes opções de tempo limite serão ignoradas pelo driver:

    • waitQueueTimeoutMS

    • socketTimeoutMS

    • wTimeoutMS

    • maxTimeMS

    • maxCommitTimeMS

    Importante

    Recurso experimental

    O CSOT é um recurso experimental e ainda não está pronto para produção. Esse recurso é opcional na versão atual e as opções de tempo limite existentes permanecem funcionais.

  • Adiciona a classe SearchIndexType , que você pode passar ao construir uma instância do SearchIndexModel. Esta alteração permite a você especificar o tipo de índice ao criar um índice de Atlas Search ou Vector Search . Para saber mais, consulte a documentação da API SearchIndexModel.

  • Delega a implementação dos algoritmos que implementam os mecanismos de autenticação SCRAM-SHA-1 e SCRAM-SHA-256 ao provedor JCA configurado. Essa alteração significa que seu aplicação pode usar um provedor JCA configurado compatível com FIPS para fornecer um nível mais alto de segurança.

  • Revisa a versão de dependência mongodb-crypt para corresponder à versão dos drivers da JVM . Versões futuras do mongodb-crypt serão lançadas junto com o driver e compartilharão o mesmo número de versão. Você deve atualizar sua mongodb-crypt dependência para v..5 20 ao atualizar seu driver para esta versão. Para saber mais, consulte o guia criptografia em execução .

  • Melhorias de desempenho devido à implementação de criptografia nativa em todas as plataformas suportadas. A lista a seguir descreve as ações necessárias para implementar essa melhoria dependendo do seu sistema operacional:

    • Windows: atualize sua versão do mongodb-crypt para v5.2.0.

    • Mac: atualize sua versão do mongodb-crypt para v5.2.0.

    • Linux: instale libmongocrypt.so diretamente no sistema de arquivos, em vez de usar o arquivo fornecido com o mongodb-crypt arquivo JAR. Você pode encontrar instruções libmongocrypt do Linux para instalar o no manual do Servidor. Se você usar um gerenciador de pacote para instalar libmongocrypt o, o Java Native Access (JNA) o encontrará lá sem configuração adicional. Como alternativa, você pode especificar o caminho da pesquisa definindo a LD_LIBRARY_PATH variável de ambiente para o caminho do arquivo do libmongocrypt pacote.

      Recomendamos a instalação direta porque a biblioteca compartilhada agrupada não está vinculada ao OpenSSL devido ao potencial de incompatibilidades binárias do OpenSSL.

      O carregamento da biblioteca compartilhada é tratado pelo JNA. Você pode visualizar as regras para a ordem do caminho da pesquisa de carregamento da biblioteca na documentação da classe NativeLibrary.

  • Corrige um problema que fazia com que os métodos InsertOneResult.getInsertedId() e InsertManyResult.getInsertedIds() retornassem IDs de documento incorretos em algumas situações. Essa alteração é portada para o driver Java Reactive Streams v5.1.4 e v4.11.4.

  • Quando uma operação de cluster fragmentado não obtém êxito, o driver evita selecionar o mesmo servidor mongos para tentativas de repetição de operação se outros servidores mongos estiverem disponíveis.

  • Adiciona metadados de acessibilidade necessários quando seu aplicação usa Imagem nativa do GraalVM. Esses metadados substituem a necessidade de coletar metadados de acessibilidade ao usar as bibliotecas de drivers. Para saber mais, consulte Metadados de acessibilidade na documentação do GraalVM.

    Essa alteração não libjnidispatch libmongocrypt adiciona as entradas de recursos e, porque a adição de entradas para todas as plataformas suportadas (destinos) afeta significativamente o tamanho dos executáveis nativos criados usando a GraalVM Native Imagem. Visualize este exemplo de arquivo resource-config.json no repositório GitHub do driver para ver como especificar essas entradas explicitamente se seu aplicação depender da org.mongodb:mongodb-crypt biblioteca.

  • Ativa a pesquisa vetorial exata estendendo a API VectorSearchOptions para introduzir os seguintes subtipos de opção específicas:

    • ExactVectorSearchOptions: use esse tipo de opções para habilitar a correspondência precisa, garantindo que os resultados sejam os vetores mais próximos de um determinado vetor de consulta.

    • ApproximateVectorSearchOptions: use este tipo de opções para habilitar pesquisas que podem não retornar os vetores exatos mais próximos. Você pode passar um parâmetro numCandidates ao instanciar esse tipo para especificar o número de vizinhos mais próximos a serem considerados.

    Para saber mais sobre como usar o recurso de pesquisa vetorial do MongoDB, consulte o Início rápido da pesquisa vetorial do MongoDB.

O 5.1.3 a versão do patch do driver inclui as seguintes alterações:

  • Corrige um problema que pode causar erros de asserção ao usar Cursor tipos.

O 5.1.2 a versão do patch do driver inclui as seguintes alterações:

  • Corrige um problema que impede o driver de codificar e decodificar classes concretas que estendem classes de base genéricas, nos casos em que você especifica a classe de base como o tipo genérico da instância MongoCollection .

O 5.1.1 a versão do patch do driver inclui as seguintes alterações:

  • Ao usar o mecanismo de autenticação MONGODB-OIDC , você não deve incluir vírgulas no valor da string de conexão authMechanismProperties .

Importante

MongoDB Server v3.6 Fim da vida útil

O suporte para o MongoDB Server v3.6 está obsoleto nesta versão e será removido na versão v5.2 do driver.

Para saber mais sobre outras alterações introduzidas na v5.1, consulte o guia Novidades na documentação do Java Sync Driver.