Menu Docs
Página inicial do Docs
/ / /
Kotlin Coroutine

NOVIDADES

Descubra as novidades de cada versão:

  • Versão 5.1.3

  • Versão 5.1.2

  • Versão 5.1.1

  • Versão 5.1

  • Versão 5.0

  • Versão 4.11

  • Versão 4.10

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 .

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

  • Suporte para codificação de classes de dados Kotlin com tipos de parâmetro genéricos anuláveis. Por exemplo, você pode codificar a classe Container no seguinte código:

    @Serializable
    data class Box<T>(
    val boxed: T
    )
    @Serializable
    data class Container(
    val box: Box<String?>
    )

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 . Para saber mais sobre esse comportamento, consulte a seção MONGODB-OIDC do guia Autenticação empresarial.

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:

  • O suporte para o servidor MongoDB v3.6 está obsoleto e será removido na próxima versão do driver. Para saber como atualizar seu sistema do servidor MongoDB, consulte Notas de versão no manual do servidor MongoDB.

  • Testes internos da tecnologia de imagem nativa GraalVM. Esses testes envolvem a criação de aplicativos nativos usando a ferramenta de imagem nativa GraalVM.

  • Suporte aprimorado para o mecanismo de autenticação MONGODB-OIDC . Para saber mais sobre o OIDC, consulte a seção Mecanismos de autenticação empresarial do guia Mecanismos de autenticação empresarial.

  • Corrige um problema no qual as operações usavam o codec incorreto ao usar uma instância polimórfica MongoCollection . Isso garante que as informações do discriminador não sejam perdidas ao usar bson-kotlinx.

  • Corrige um problema no qual o discriminador de classe era o primeiro campo ao decodificar, resultando em erros de tipo de campo ao usar uma instância polimórfica MongoCollection .

  • Suporte para serialização polimórfica . Para saber mais, consulte a seção Serialização polimórfica do guia Serialização Kotlin .

  • Introduz a opção serverMonitoringMode de conexão URI. Para saber mais, consulte o guia Opções de conexão .

Os novos recursos da versão do driver 5.0 incluem:

  • O construtor KotlinSerializerCodecProvider agora aceita objetos serializersModule e bsonConfiguration :

    KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration)

    Isso torna mais fácil personalizar sua configuração.

  • Corrige um bug de reflexão do Kotlin que resultou no apagamento do tipo de container.

Esta seção inclui as seguintes informações:

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 seguintes métodos relacionados ao endereço de rede são preteridos e serão removidos na v5.0:

    • O ServerAddress métodos getSocketAddress() e getSocketAddresses().

      Em vez de getSocketAddress(), utilize o método de instância getByName() de java.net.InetAddress.

      Em vez de getSocketAddresses(), utilize o método de instância getAllByName() de java.net.InetAddress.

    • O método UnixServerAddress getUnixSocketAddress().

      Em vez de getUnixSocketAddress(), construa uma instância de jnr.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 o UnixSocketAddress, 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 de MongoClientSettings.Builder

    • getStreamFactoryFactory() método de MongoClientSettings

    • NettyStreamFactoryFactory classe

    • NettyStreamFactory classe

    • AsynchronousSocketChannelStreamFactory classe

    • AsynchronousSocketChannelStreamFactoryFactory classe

    • BufferProvider classe

    • SocketStreamFactory classe

    • Stream classe

    • StreamFactory classe

    • StreamFactoryFactory classe

    • TlsChannelStreamFactoryFactory classe

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

Os novos recursos da versão 4.11 do driver incluem:

  • Suporte para conexão ao MongoDB usando um proxy SOCKS5.

  • Foi adicionado o método getSplitEvent() à classe ChangeStreamDocument para identificar fragmentos de um evento de fluxo de alteração que excede 16 MB. Você deve usar o estágio de agregação $changeStreamSplitLargeEvent em seu fluxo de alterações para lidar com eventos que excedam 16 MB.

  • Foi adicionado um construtor de estágio de agregação para $vectorSearch.

  • Foram adicionados assistentes de gerenciamento de índices do 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:

Importante

A partir da versão 4.10.1 do driver Kotlin, você deve adicionar a biblioteca bson-kotlinx como uma dependência explícita para usar a biblioteca kotlinx-serialization .

  • Suporte para uso do lado do servidor Kotlin, tanto para corrotinas quanto para aplicativos síncronos.

  • Suporte de codec para classes de dados Kotlin.

  • Suporte para a biblioteca kotlinx.serialization

Voltar

Referência rápida

Nesta página