Descubra as novidades de cada versão:
Novidades em 5.1.3
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 os tipos
Cursor.
Novidades em 5.1.2
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.Corrige um problema relacionado a como os nomes de domínio são validados quando você usa a funcionalidade de proxy do SOCKS5 , permitindo usar nomes de domínio com mais de seis caracteres no domínio de nível superior.
Novidades em 5.1.1
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ãoauthMechanismProperties. Para saber mais sobre esse comportamento, consulte a seção MONGODB-OIDC do guia Autenticação empresarial.Otimiza a taxa de transferência do GridFS removendo a clonagem de array de bytes redundante. Os tipos
GridFSDownloadStreameGridFSUploadStreamusam o tipoBsonDocumentem vez deDocument.
Novidades no 5.1
Aviso
Depreciações nesta versão
Para evitar alterações significativas em futuras versões principais do driver, substitua qualquer código de aplicativo que dependa de elementos de programa obsoletos.
Esta seção inclui as seguintes informações:
Descontinuações no 5.1
O suporte para o MongoDB Server v3.6 está obsoleto e será removido na próxima versão do driver. Para saber como atualizar seu sistema do MongoDB Server , consulte Notas de versão no manual do MongoDB Server .
Melhorias na versão 5.1
Testes internos da tecnologia de imagem nativa GraalVM. Esses testes envolvem a criação de aplicativos nativos usando a ferramenta de imagem nativa GraalVM.
Compatibilidade aprimorada para o mecanismo de autenticação MONGODB-OIDC. Para obter mais informações sobre o OIDC, consulte a seção MONGODB-OIDC do guia Enterprise Authentication Mechanisms.
Novos recursos em 5.1
Introduz a opção
serverMonitoringModede conexão URI. Para obter mais informações sobre essa opção, consulte o guia Opções de conexão .
Novidades no 5.0
Aviso
Alterações significativas nesta versão
Esta versão do driver apresenta alteração interruptiva. Para obter uma lista dessas alterações, consulte a seção Alterações significativas da versão 5.0 no guia de atualização.
Aviso
Depreciações nesta versão
Para evitar alterações significativas em futuras versões principais do driver, substitua qualquer código de aplicativo que dependa de elementos de programa obsoletos.
Esta seção inclui as seguintes informações:
Depreciações na versão 5.0
O método
org.mongodb.scala.Observable.completeWithUnit()está obsoleto. Esse método não é mais útil porque o driver agora expõeorg.mongodb.scala.Observable[Unit]em vez deorg.mongodb.scala.Observable[Void]. Isso está relacionado a uma mudança radical sobre Observables nesta versão.
Mudanças comportamentais no 5.0
O método
getElapsedTime()emcom.mongodb.event.ConnectionReadyEventinclui o tempo necessário para entregar oConnectionCreatedEvent. Ou seja, o tempo retornado inclui a duração do métodocom.mongodb.event.ConnectionPoolListener.connectionCreated().Os métodos
getElapsedTime()emcom.mongodb.event.ConnectionCheckedOutFailedEventecom.mongodb.event.ConnectionCheckedOutEventincluem o tempo necessário para entregar ocom.mongodb.event.ConnectionCheckOutStartedEvent. Ou seja, o tempo retornado inclui a duração do métodocom.mongodb.eventConnectionPoolListener.connectionCheckOutStarted().
Novos recursos no 5.0
A versão 5.0 do driver introduz os seguintes recursos:
Adiciona suporte para a opção
authorizedCollectiondo comandolistCollections. Isso foi feito alterando os métodoscom.mongodb.client.MongoDatabase.listCollectionNames(). O tipo de retorno agora écom.mongodb.client.ListCollectionNamesIterable, enquanto anteriormente era umMongoIterable<String>. Esta alteração permite que o valor de retorno seja configurado utilizando o métodoListCollectionNamesIterable.authorizedCollections()e especificando a opçãoauthorizedCollections. Foram feitas alterações equivalentes nas seguintes classes e interfaces:com.mongodb.reactivestreams.client.MongoDatabaseorg.mongodb.scala.MongoDatabasecom.mongodb.kotlin.client.MongoDatabasecom.mongodb.kotlin.client.coroutine.MongoDatabase
Essas alterações introduzem uma alteração de quebra binária no método listCollectionsNames(). Para obter mais informações sobre o método
MongoDatabase.listCollectionNames()e a opçãoauthorizedCollections, consulte a página de manual listCollections MongoDB Server ou Obter uma lista de coleções.
Observação
O v5.0.2 A versão de patch corrigiu um problema relacionado a como os nomes de domínio são validados quando você usa a funcionalidade de proxy do SOCKS5 , permitindo usar nomes de domínio com mais de seis caracteres no domínio de nível superior.
Novidades no 4.11
Esta seção inclui as seguintes informações:
Depreciações na versão 4.11
Aviso
Depreciações nesta versão
Para evitar alterações significativas em futuras versões principais do driver, substitua qualquer código de aplicativo que dependa de métodos e tipos preteridos.
A versão 4.11 do driver substitui os seguintes itens:
Os métodos de instância
getStats()eisCapped()da classeDBCollectionsão preteridos. Os comandos de servidor correspondentes são preteridos no MongoDB v6.2 e posterior. Use o estágio do aggregation pipeline do$collStatspara recuperar as informações fornecidas por esses métodos. Você pode executar a agregação como mostrado no seguinte exemplo de código:Cursor cursor = collection.aggregate(Arrays.asList( new BasicDBObject("$collStats", new BasicDBObject("storageStats", new BasicDBObject()))), AggregationOptions.builder().build() ); Para determinar se uma coleção é uma coleção limitada, acesse o valor do campo
storageStats.cappedretornado pela instânciaCursorna agregação de exemplo anterior.Para saber mais sobre o operador de agregação do
$collStats, consulte a entrada manual do servidor $collStats (agregação).Os seguintes métodos relacionados ao endereço de rede são preteridos e serão removidos na v5.0:
O ServerAddress métodos
getSocketAddress()egetSocketAddresses().Em vez de
getSocketAddress(), utilize o método de instânciagetByName()dejava.net.InetAddress.Em vez de
getSocketAddresses(), utilize o método de instânciagetAllByName()dejava.net.InetAddress.O método UnixServerAddress
getUnixSocketAddress().Em vez de
getUnixSocketAddress(), construa uma instância dejnr.unixsocket.UnixSocketAddress. Passe o caminho completo do arquivo de soquete UNIX para o construtor. Por padrão, o MongoDB cria um arquivo de soquete UNIX localizado em"/tmp/mongodb-27017.sock". Para saber mais sobre oUnixSocketAddress, consulte a documentação da API UnixSocketAddress.
Os seguintes métodos e tipos relacionados à interface StreamFactory foram preteridos e agendados para remoção na v5.0:
streamFactoryFactory()método deMongoClientSettings.BuildergetStreamFactoryFactory()método deMongoClientSettingsNettyStreamFactoryFactoryclasseNettyStreamFactoryclasseAsynchronousSocketChannelStreamFactoryclasseAsynchronousSocketChannelStreamFactoryFactoryclasseBufferProviderclasseSocketStreamFactoryclasseStreamclasseStreamFactoryclasseStreamFactoryFactoryclasseTlsChannelStreamFactoryFactoryclasse
Se você configurar o Netty utilizando
MongoClientSettings.Builder.streamFactoryFactory(), seu código poderá se assemelhar ao seguinte:import com.mongodb.connection.netty.NettyStreamFactoryFactory; // ... MongoClientSettings settings = MongoClientSettings.builder() .streamFactoryFactory(NettyStreamFactoryFactory.builder().build()) .build(); Substitua este código pelo TransportSettings.nettyBuilder() como mostrado no exemplo a seguir:
import com.mongodb.connection.TransportSettings; // ... MongoClientSettings settings = MongoClientSettings.builder() .transportSettings(TransportSettings.nettyBuilder().build()) .build();
Novos recursos na versão 4.11
Os novos recursos da versão 4.11 do driver incluem:
Suporte para conexão ao MongoDB usando um proxy SOCKS5. Para saber mais, consulte Conectar ao MongoDB usando um proxy SOCKS5.
Observação
O v4.11.3 A versão de patch corrigiu um problema relacionado a como os nomes de domínio são validados quando você usa a funcionalidade de proxy do SOCKS5 , permitindo usar nomes de domínio com mais de seis caracteres no domínio de nível superior.
Foi adicionado o método
getSplitEvent()à classeChangeStreamDocumentpara identificar fragmentos de um evento de fluxo de alteração que excede 16 MB. Você deve usar o estágio de agregação$changeStreamSplitLargeEventem seu fluxo de alterações para lidar com eventos que excedam 16 MB. Para saber mais, consulte Dividir eventos de transmissão de grande mudança.Foi adicionado um construtor de estágio de aggregation para
$vectorSearch. Para saber mais, consulte Atlas Vector Search.Foram adicionados auxiliares de gerenciamento de índices do Atlas Search. Para saber mais, consulte Índices de Atlas Search.
Versões atualizadas da biblioteca de compressão Snappy e Zstd. Para saber mais sobre as versões de dependência atuais, consulte Compressão de rede.
Foram adicionados métodos
getElapsedTime()às seguintes classes para monitorar a duração dos eventos do pool de conexões:Suporte para threads virtuais Java 21 e simultaneidade estruturada. Os componentes internos do driver foram atualizados para evitar a fixação desnecessária de threads virtuais e para preservar o status de interrupção de um thread, já que esse último é importante para a simultaneidade estruturada, onde é usado para cancelamento.
Para saber mais sobre threads virtuais, consulte a proposta de aprimoramento do JDK de threads virtuais. Para saber mais sobre simultaneidade estruturada, consulte a proposta de aprimoramento JDK de simultaneidade estruturada.
Documentação da API atualizada para os seguintes tipos:
Novidades no 4.10
As novas funcionalidades da versão do driver do 4,10 incluem:
Implementação dos métodos
Accumulators.percentile()eAccumulators.median()para agregações estatísticas.As interfaces no pacote
com.mongodb.client.model.searchagora são marcadas como@Sealedem vez de@Evolving. Interfaces seladas não devem ser estendidas ou implementadas pelos consumidores da biblioteca.Resolvido um problema em que o driver emitia mensagens de registro duplicadas para operações de repetição. O driver emite agora corretamente uma mensagem de registo para cada nova tentativa de operação.
A interface
org.bson.codecs.Parameterizableestá obsoleta. Em vez de implementar essa interface em um tipo deCodecpersonalizado, substitua o métodoCodecProvider.get()noCodecProviderdo codec se o codec for destinado a um tipo parametrizado.Suporte para resolvedores de DNS personalizados.
Suporte para Queryable Encryption (QE). Para saber mais sobre os requisitos para usar o recurso QE, consulte a Queryable Encryption Driver Compatibility Table.