Conozca las novedades en:
Novedades en 5.1.3
La versión del parche del controlador 5.1.3 incluye los siguientes cambios:
Corrige un problema que podría causar errores de afirmación al usar
Cursortipos.
Novedades en 5.1.2
La versión del parche del controlador 5.1.2 incluye los siguientes cambios:
Compatibilidad con la codificación de clases de datos Kotlin con tipos de parámetros genéricos que aceptan valores NULL. Por ejemplo, puede codificar la clase
Containeren el siguiente código:data class Box<T>( val boxed: T ) data class Container( val box: Box<String?> )
Novedades en 5.1.1
La versión del parche del controlador 5.1.1 incluye los siguientes cambios:
Al utilizar el mecanismo de autenticación
MONGODB-OIDC, no debe incluir comas en el valor de la cadena de conexiónauthMechanismProperties. Para obtener más información sobre este comportamiento, consulte SecciónMONGODB-OIDC de la guía de autenticación empresarial.
Novedades de la versión 5.1
Advertencia
Desusos en esta versión
Para evitar cambios importantes en futuras versiones importantes del controlador, reemplace cualquier código de aplicación que dependa de elementos de programa obsoletos.
Esta sección incluye la siguiente información:
Desusos en 5.1
La compatibilidad con el servidor MongoDB v3.6 está obsoleta y se eliminará en la próxima versión del controlador. Para saber cómo actualizar su implementación del servidor MongoDB, consulte las Notas de la versión en el manual del servidor MongoDB.
Mejoras en 5.1
Pruebas internas de la tecnología de imagen nativa GraalVM. Estas pruebas implican compilar aplicaciones nativas utilizando la herramienta GraalVM native-image.
Compatibilidad mejorada con el
MONGODB-OIDCmecanismo de autenticación. Para obtener más información sobre OIDC, consulte la sección "Mecanismos de autenticación empresarial" de la guía "Mecanismos de autenticación empresarial".Se solucionó un problema por el cual las operaciones utilizaban el códec incorrecto al usar una instancia polimórfica
MongoCollection. Esto garantiza que la información del discriminador no se pierda al usarbson-kotlinx.Corrige un problema en el cual el discriminador de clase era el primer campo durante la decodificación, lo que generaba errores de tipo de campo al usar una instancia polimórfica
MongoCollection.
Nuevas funciones en 5.1
Compatibilidad con serialización polimórfica. Para obtener más información, consulte la sección "Serialización polimórfica" de la guía de serialización de Kotlin.
Se introduce la
serverMonitoringModeopción de URI de conexión. Para obtener más información,consulte la guía de opciones de conexión.
Novedades de la versión 5.0
Las nuevas características de la versión 5.0 del controlador incluyen:
El constructor
KotlinSerializerCodecProviderahora acepta objetosserializersModuleybsonConfiguration:KotlinSerializerCodec.create(clazz.kotlin, serializersModule=serializersModule, bsonConfiguration=bsonConfiguration) Esto hace que sea más fácil personalizar su configuración.
Corrige un error de reflexión de Kotlin que provocaba el borrado del tipo de contenedor.
Novedades de la versión 4.11
Esta sección incluye la siguiente información:
Desusos en la versión 4.11
Advertencia
Desusos en esta versión
Para evitar cambios importantes en futuras versiones importantes del controlador, reemplace cualquier código de aplicación que dependa de métodos y tipos obsoletos.
La versión 4.11 del controlador deja obsoletos los siguientes elementos:
Los siguientes métodos relacionados con direcciones de red están obsoletos y se eliminarán en la versión 5.0:
La dirección del servidormétodos
getSocketAddress()getSocketAddresses()y.En lugar de
getSocketAddress(), utilice el método de instanciagetByName()dejava.net.InetAddress.En lugar de
getSocketAddresses(), utilice el método de instanciagetAllByName()dejava.net.InetAddress.El método UnixServerAddress
getUnixSocketAddress().En lugar
getUnixSocketAddress()de, construya una instancia de.jnr.unixsocket.UnixSocketAddressPase la ruta completa del archivo de socket UNIX al constructor. Por defecto, MongoDB crea un archivo de socket UNIX ubicado"/tmp/mongodb-27017.sock"en. Para obtener más informaciónUnixSocketAddresssobre, consulte la documentación de la API UnixSocketAddress.
Los siguientes métodos y tipos relacionados con la interfaz StreamFactory están obsoletos y su eliminación está programada para la 5 0versión.:
streamFactoryFactory()método deMongoClientSettings.BuildergetStreamFactoryFactory()método deMongoClientSettingsNettyStreamFactoryFactoryclaseNettyStreamFactoryclaseAsynchronousSocketChannelStreamFactoryclaseAsynchronousSocketChannelStreamFactoryFactoryclaseBufferProviderclaseSocketStreamFactoryclaseStreamclaseStreamFactoryclaseStreamFactoryFactoryclaseTlsChannelStreamFactoryFactoryclase
Si configura Netty utilizando
MongoClientSettings.Builder.streamFactoryFactory(), su código podría parecerse al siguiente:import com.mongodb.connection.netty.NettyStreamFactoryFactory; // ... MongoClientSettings settings = MongoClientSettings.builder() .streamFactoryFactory(NettyStreamFactoryFactory.builder().build()) .build(); Reemplace este código con TransportSettings.nettyBuilder() como se muestra en el siguiente ejemplo:
import com.mongodb.connection.TransportSettings; // ... MongoClientSettings settings = MongoClientSettings.builder() .transportSettings(TransportSettings.nettyBuilder().build()) .build();
Nuevas funciones en la versión 4.11
Las nuevas características de la versión 4.11 del controlador incluyen:
Soporte para conectarse a MongoDB mediante un proxy SOCKS5.
Se añadió el método
getSplitEvent()a la claseChangeStreamDocumentpara identificar fragmentos de un evento de flujo de cambios que superen los 16 MB. Debe usar la etapa de agregación$changeStreamSplitLargeEventen su flujo de cambios para gestionar eventos que superen los 16 MB.Se agregó un generador de etapa de agregación para
$vectorSearch.Se agregaron ayudantes para la gestión del índice de búsqueda de Atlas.
Se actualizaron las versiones de dependencia de las bibliotecas de compresión Snappy y Zstd. Para obtener más información sobre las versiones actuales de dependencia, consulte Compresión de red.
Se agregaron métodos
getElapsedTime()a las siguientes clases para monitorear la duración de los eventos del grupo de conexiones:Compatibilidad con subprocesos virtuales de Java 21 y concurrencia estructurada. Se actualizaron los componentes internos del controlador para evitar la fijación innecesaria de subprocesos virtuales y preservar el estado de interrupción de un subproceso, ya que este último es importante para la concurrencia estructurada, donde se utiliza para la cancelación.
Para obtener más información sobre los hilos virtuales, consulte la propuesta de mejora de Hilos Virtuales del JDK. Para obtener más información sobre la concurrencia estructurada, consulte la propuesta de mejora de Concurrencia Estructurada del JDK.
Documentación de API actualizada para los siguientes tipos:
Novedades de la versión 4.10
Importante
A partir de la versión 4.10.1 del controlador de Kotlin, debe agregar la librería bson-kotlinx como una dependencia explícita para usar la librería kotlinx-serialization.
Soporte para el uso del lado del servidor de Kotlin, tanto para corrutinas como para aplicaciones sincrónicas.
Compatibilidad de códecs para clases de datos Kotlin.
Soporte para la librería
kotlinx.serialization