NOVIDADES
Nesta página
Descubra as novidades de cada versão:
O que há de novo em 5.3
A versão do driver 5.3 inclui os seguintes novos recursos, melhorias e correções:
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 doDouble
. 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 8bitsFloat32BinaryVector
: Vetor de números de ponto flutuantePackedBitBinaryVector
: 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 como usar esse tipo ao usar o recurso Atlas Vector Search , consulte o guiado Atlas Vector Search .
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
updateOne()
dereplaceOne()
classificação aos métodos e. Essa alteração também permite que você defina uma classificação como uma opção ao criarReplaceOneModel
UpdateOneModel
instâncias e. Para saber mais, consulte os guias Modificar documentos e Operações em massa.
Suporte para utilizar métodos de classe de construtores diretamente com propriedades de classe de dados. Para saber mais, consulte o guia Use Builders with Data Classes. Essa funcionalidade é suportada pelo pacote de extensões do driver Kotlin publicado com esta versão.
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.
Novidades no 5.2
Importante
Remoção de suporte para o servidor MongoDB 3.6
O driver Kotlin v5.2 remove o suporte para o servidor MongoDB 3.6. Para saber mais sobre versões compatíveis do servidor, consulte Compatibilidade.
A versão do driver 5.2 inclui os seguintes novos recursos, melhorias e correções:
Adiciona a classe
SearchIndexType
, que você pode passar ao construir uma instância doSearchIndexModel
. 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 Índices de Atlas Search e Vector Search no guia Índices.Delega a implementação dos algoritmos que implementam os mecanismos de autenticação
SCRAM-SHA-1
eSCRAM-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 o mongodb-crypt versão de dependência para corresponder à versão para os drivers JVM . Futuras versões 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 dependênciamongodb-crypt
para v5.2.0 ao atualizar seu driver para esta versão. Para saber mais, consulte o guia criptografia em execução 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 arquivo JARmongodb-crypt
. Você pode encontrar instruções do Linux para instalar olibmongocrypt
no manual do Servidor. Se você usar um gerenciador de pacote para instalar olibmongocrypt
, o Java Native Access (JNA) o encontrará lá sem configurações adicionais. Como alternativa, você pode especificar o caminho da pesquisa definindo a variável de ambienteLD_LIBRARY_PATH
para o caminho do arquivo do pacotelibmongocrypt
.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()
eInsertManyResult.getInsertedIds()
retornassem IDs de documento incorretos em algumas situações. Essa alteração é portada para o driver Kotlin 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 servidoresmongos
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 adiciona as entradas de recursos
libjnidispatch
elibmongocrypt
, 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. Veja esta amostra resource-config.json no repositório do driver Github para ver como especificar essas entradas explicitamente se seu aplicação depender daorg.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âmetronumCandidates
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 Atlas Vector Search , consulte Atlas Vector Search no guia Aggregates Builders.
Adiciona suporte para serializadores da biblioteca
kotlinx-datetime
que permitem mapear tipos de data e hora de Kotlin para BSON como os tipos esperados em vez de strings. Para saber mais, consulte a seção Serialize Dates and Times do guia Kotlin Serialization.Suporta serialização de JsonElement valores. Para trabalhar com o tipo
JsonElement
, você deve adicionar a bibliotecakotlinx-serialization-json
como uma dependência em seu aplicaçã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
Cursor
tipos.
Novidades em 5.1.2
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:data class Box<T>( val boxed: T ) data class Container( val box: Box<String?> )
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.
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 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.
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.
Suporte aprimorado para o mecanismo de autenticação
MONGODB-OIDC
. Para saber mais sobre o OIDC, consulte a seção MONGODB-OIDC 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 usarbson-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
.
Novos recursos em 5.1
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 .
Novidades no 5.0
Os novos recursos da versão do driver 5.0 incluem:
O construtor
KotlinSerializerCodecProvider
agora aceita objetosserializersModule
ebsonConfiguration
: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.
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 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 UnixServerAddress método
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 à StreamFactory interface são preteridas e programadas para remoção na v5.0:
streamFactoryFactory()
método deMongoClientSettings.Builder
getStreamFactoryFactory()
método deMongoClientSettings
NettyStreamFactoryFactory
classeNettyStreamFactory
classeAsynchronousSocketChannelStreamFactory
classeAsynchronousSocketChannelStreamFactoryFactory
classeBufferProvider
classeSocketStreamFactory
classeStream
classeStreamFactory
classeStreamFactoryFactory
classeTlsChannelStreamFactoryFactory
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();
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.
Foi adicionado o método
getSplitEvent()
à classeChangeStreamDocument
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 os threads virtuais, consulte a seção Threads virtuais proposta de aprimoramento do JDK. Para saber mais sobre simultaneidade estruturada, consulte a seção SimultaneidadeEstruturada proposta de aprimoramento do JDK.
Documentação da API atualizada para os seguintes tipos:
Novidades no 4.10
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