Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Notas de versión

Conozca las novedades en:

  • Versión 5.6

  • Versión 5.5.1

  • Versión 5.5

  • Versión 5.4

  • Versión 5.3

  • Versión 5.2

  • Versión 5.1.3

  • Versión 5.1.2

  • Versión 5.1.1

  • Versión 5.1

  • Versión 5.0

La versión del controlador 5.6 incluye los siguientes cambios, correcciones y características:

  • Añade compatibilidad experimental con consultas de prefijo, sufijo y subcadena de cifrado consultable. Para obtener más información sobre QE, consulte encriptación en uso.

    Nota

    Funcionalidad Experimental

    Las consultas de prefijos, sufijos y subcadenas con cifrado consultable (Queryable Encryption) son inestables y su seguridad no está garantizada hasta que estén generalmente disponibles (GA). Utilícelos solo en cargas de trabajo experimentales.

  • Agrega un nsType Campo para objetos ChangeStreamDocument. Este campo contiene el tipo de espacio de nombres (COLLECTION, TIMESERIES o VIEW) del evento de cambio.

  • Agrega soporte experimental para la expiración de la operación en el lado del cliente (CSOT) para la autenticación OIDC.

    Nota

    Funcionalidad Experimental

    La funcionalidad CSOT es experimental y podría cambiar en futuras versiones de driver.

  • Cuando se configura timeoutMS para CSOT, el controlador ignora el valor de la configuración de conexión maxWaitTime.

  • Agrega un método appendMetadata() a la clase MongoClient. Puedes utilizar este método para adjuntar metadatos a los metadatos de un cliente existente. El tamaño máximo de metadatos es 512 MB.

  • Agrega un constructor público a la clase RewrapManyDataKeyOptions.

  • Fusiona las interfaces AsyncReadOperation y AsyncWriteOperation en las interfaces ReadOperation y WriteOperation. Se pueden crear operaciones de lectura y escritura mediante métodos de construcción en la clase Operations.

  • Obsoleta la constante MongoNamespace.COMMAND_COLLECTION_NAME.

  • Corrige un error que impedía la reautenticación OIDC dentro de una sesión.

  • Al serializar un POJO anotado con @BsonDiscriminator, si la readName de la propiedad coincide con la clave de discriminador, el driver serializa el campo solo una vez.

  • Después de llamar al método next() o tryNext() en una instancia de CommandCursorResult, el driver limpia la propiedad CommandCursorResult.results para liberar memoria.

  • La clase PojoBuilderHelper crea modelos de propiedades que incluyen las propiedades de las clases abstractas e interfaces.

  • El controlador publica y registra los siguientes eventos cuando cambia la topología del clúster:

    • ClusterOpeningEvent:Se publica cuando se abre la topología

    • ClusterDescriptionChangedEventSe publica cuando cambia la descripción de la topología

    • ClusterClosedEvent:Se publica cuando se cierra la topología

  • El controlador lanza un MongoStalePrimaryException cuando el miembro del conjunto de réplicas principal queda obsoleto por una de las siguientes razones:

    • Se elige o se descubre un nuevo miembro principal.

    • El valor del campo electionId o setVersion en el primario no coincide con los valores de estos campos en los otros miembros del set de réplicas.

    Para obtener más información sobre los sets de réplicas, consulte Replicación en el manual del MongoDB Server.

La versión del parche del controlador 5.5.1 incluye los siguientes cambios:

  • Corrige un problema donde la reautenticación OIDC fallaba cuando era activada por una operación ejecutada en una sesión, incluyendo operaciones ejecutadas en una transacción.

Importante

Eliminación del soporte para MongoDB Server 4.0

Controlador de sincronización de Kotlin v5.5 elimina el soporte para MongoDB Server 4.0. Para obtener más información sobre las versiones compatibles del servidor, consulte Compatibilidad.

La versión del controlador 5.5 incluye los siguientes cambios, correcciones y características:

  • Introduce mejoras de rendimiento que se reflejan en los benchmarks de rendimiento del controlador. Para ver los resultados de las pruebas de referencia de rendimiento, vea la siguiente sección Mejoras de rendimiento.

Las tablas en esta sección muestran los resultados de las pruebas de rendimiento para el controlador Java síncrono. Las pruebas se realizaron en una implementación de MongoDB Server 8.0 con la siguiente configuración:

  • En funcionamiento en localhost con una latencia de red insignificante. En entornos con mayor latencia, es posible que observes mejoras de rendimiento menos significativas.

  • Autenticación desactivada.

  • TLS deshabilitado.

Esperamos aumentos de rendimiento similares para todos los controladores Java de MongoDB porque comparten la API mejorada de driver-core.

La siguiente tabla muestra los resultados de las pruebas de rendimiento para la versión5.5 del controlador configurado con ajustes estándar de transporte. Cada fila incluye la funcionalidad evaluada, el porcentaje de mejora en el rendimiento y el z-score.

funcionalidad
Porcentaje de mejora
Puntuación Z

Decodificación profunda de BSON

19.44%

5.4

Codificación BSON profunda

102%

22.8

Encontrar varios y vaciar el cursor

25.08%

13.72

Encuentra uno por ID

2.7%

3.16

Decodificación BSON plana

31.2%

9.38

Codificación BSON plana

199.5%

12.34

Decodificación completa de BSON

16.5%

7.23

Codificación BSON completa

147.3%

10.39

Importación de múltiples archivosJSON-LD

21.8%

8.21

Inserción masiva de clientes con documentos grandes

91.3%

24.44

Inserción en masa de colecciones con documentos grandes

96.5%

8.79

Inserción masiva con documentos grandes

93.3%

8.11

Inserción masiva de documentos pequeños

39.3%

5.72

Insertar uno con documentos grandes

82.4%

7.28

Inserción masiva de clientes con documentos pequeños

49.5%

17.99

Inserción masiva de colección con documentos pequeños

47.8%

6.44

La siguiente tabla muestra los resultados de las pruebas de rendimiento para la v5.5 del controlador configurado con la configuración de transporte Netty. Cada fila incluye la funcionalidad probada, el porcentaje de mejora en el rendimiento, y el z-score.

funcionalidad
Porcentaje de mejora
Puntuación Z

Encontrar varios y vaciar el cursor

40.3%

14.81

Encuentra uno por ID

4.4%

4.12

Importación de múltiples archivosJSON-LD

16.9%

3.77

Inserción masiva de clientes con documentos grandes

54.8%

14.49

Inserción en masa de colecciones con documentos grandes

104.9%

38.72

Inserción masiva con documentos grandes

74.6%

65.55

Insertar uno con documentos grandes

66.6%

58.65

Inserción masiva de clientes con documentos pequeños

36.1%

15.41

Inserción masiva de colección con documentos pequeños

39.3%

37.38

Inserción masiva de documentos pequeños

35.1%

41.51

Tip

Para obtener más información sobre cómo realizamos pruebas comparativas de rendimiento del conductor, consulte la especificación de evaluación comparativa de rendimiento.

La versión del controlador 5.4 incluye los siguientes cambios, correcciones y características:

  • Admite operaciones $lookup para CSFLE y QE. Para aprender más, consulte las siguientes referencias en el manual del servidor:

  • Introduce un Bill of Materials (BOM) para gestionar las versiones de los artefactos JVM de MongoDB que podrías utilizar en tu aplicación. Para ver las instrucciones sobre cómo añadir el BOM a tu aplicación, consulta el paso Añadir la lista de materiales del controlador del tutorial de descarga e instalación.

  • Actualiza las dependencias del SDK de AWS a 2.30.31 y 1.12.782 para probar el mecanismo de autenticación MONGODB-AWS.

  • Añade una opción de ClientUpdateOneOptions ordenación a las ClientReplaceOneOptions clases y. Este cambio permite establecer un orden de ordenación para las operaciones de actualización y reemplazo en las escrituras masivas del cliente. Para obtener más información, consulte las secciones "Operación de actualización" y "Operaciones de reemplazo" de la guía "Operaciones de escritura masiva".

  • Agrega soporte para Kubernetes en la autenticación OIDC. Para obtener más información, consulta la sección MONGODB-OIDC: Kubernetes de la guía de Mecanismos de autenticación de empresa.

  • Agrega soporte de primera clase para los siguientes operadores del query de MongoDB Search:

    • phrase

    • regex

    • queryString

    • equals

    • moreLikeThis

    • in

    • wildcard

    Para obtener más información, consulte la sección MongoDB Search de la guía de agregación.

  • Actualiza los cursores para refrescar la configuración timeoutMS cuando llamas a close() sin afectar el tiempo de espera de la operación.

  • Le permite utilizar un índice al llamar al método distinct() especificando una opción hint.

Para ver una lista completa de cambios en esta versión, consulte las 5.4 notas de la versión v en GitHub.

La versión del controlador 5.3 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Importante: La próxima versión menor dejará de ser compatible con la versión del servidor MongoDB 4.0 y aumentará la versión mínima compatible a la 4.2. Recomendamos realizar cambios en tu aplicación para adaptarla a los cambios disruptivos. Consulta la sección Notas de la versión en el manual del servidor para obtener más información sobre la actualización.

  • Agrega la clase BinaryVector para implementar el Subtipo Binario BSON 9 para el almacenamiento y recuperación de vectores. Esta clase proporciona un almacenamiento más eficaz de los valores en comparación con una lista de instancias de Double. Puedes crear los siguientes tipos de vectores en función del tipo de elementos que contiene tu vector:

    • Int8BinaryVectorVectores de números enteros con signo de 8bits

    • Float32BinaryVector: Vector de n\u00fameros de punto flotante

    • PackedBitBinaryVector: Vector binario cuantizado (En beta y sujeto a cambios antes de estar disponible para el público en general)

    Para obtener más información sobre esta funcionalidad, consulte Cuantización vectorial en la documentación de Atlas. Para aprender sobre este tipo, consulta la documentacion de la API de BinaryVector.

  • Elimina la equidad explícita de la implementación del pool de conexiones. Este cambio podría contribuir a un mejor rendimiento cuando utilices una instancia MongoClient en muchos hilos de aplicación. Sin embargo, este cambio podría causar un aumento de la latencia de cola.

  • Agrega una opción de ordenamiento a los métodos updateOne() y replaceOne(). Este cambio también te permite configurar un orden como opción al crear instancias de ReplaceOneModel y UpdateOneModel. Para aprender más, consulte las guías Actualizar DocumentosReemplazar Documentos y Operaciones de Escritura en Masa.

  • Soporte para usar los métodos de clase desarrolladores directamente con las propiedades de clase de datos. Para obtener más información, consulta la guía Utiliza desarrolladores con clases de datos. Esta funcionalidad es compatible con el paquete de extensiones del controlador Kotlin Sync publicado con esta versión.

  • Implementa una API de escritura masiva cliente que permite realizar operaciones de escritura en varias bases de datos y colecciones en la misma llamada. Para obtener más información sobre esta funcionalidad, consulta la sección Escritura masiva del cliente de la guía de Operaciones de escritura masiva.

Importante

Eliminación del soporte para MongoDB Server 3.6

Controlador de sincronización de Kotlin v5.2 elimina el soporte para MongoDB Server 3.6. Para obtener más información sobre las versiones compatibles del servidor, consulte Compatibilidad.

La versión del controlador 5.2 incluye las siguientes nuevas funcionalidades, mejoras y correcciones:

  • Permite configurar un tiempo de espera para operaciones del lado del cliente (CSOT). Esta funcionalidad permite establecer un solo tiempo de espera en tu instancia de MongoClient que se aplica a todas las operaciones realizadas con ese cliente. Para obtener más información, consulta la guía Limitar el tiempo de ejecución del servidor.

    Si, y sólo si, la funcionalidad CSOT está habilitada, las siguientes opciones de tiempo de espera serán ignoradas por el driver:

    • waitQueueTimeoutMS

    • socketTimeoutMS

    • wTimeoutMS

    • maxTimeMS

    • maxCommitTimeMS

    Importante

    Funcionalidad Experimental

    CSOT es una funcionalidad experimental y aún no está lista para producción. Esta funcionalidad es opcional en la versión actual y las opciones de tiempo de espera existentes siguen siendo funcionales.

  • Añade la SearchIndexType clase, que se puede pasar al construir una SearchIndexModel instancia. Este cambio permite especificar el tipo de índice al crear un índice de búsqueda Atlas o vectorial. Para obtener más información, consulte la guía de índices de búsqueda y vectorial de MongoDB.

  • Delegar la implementación de los algoritmos que implementan los mecanismos de autenticación SCRAM-SHA-1 y SCRAM-SHA-256 en el proveedor JCA configurado. Este cambio significa que tu aplicación puede usar un proveedor JCA configurado conforme a FIPS para ofrecer un mayor nivel de seguridad.

  • Se revisa el control de versiones de la dependencia mongodb-crypt para que coincida con el de los controladores de JVM. Las futuras versiones de mongodb-crypt se publicarán junto con el controlador y compartirán el mismo número de versión. Debe actualizar su mongodb-crypt dependencia a5 20 la versión.. al actualizar su controlador para esta versión. Para obtener más información, consulte la guía de cifrado en uso.

  • Mejoras de rendimiento debido a la implementación de criptografía nativa en todas las plataformas compatibles. La siguiente lista describe las acciones necesarias para implementar esta mejora según tu sistema operativo:

    • Windows: actualiza tu versión de mongodb-crypt a la v5.2.0.

    • Mac: actualice su versión de mongodb-crypt a v5.2.0.

    • Linux: Instale libmongocrypt.so directamente en el sistema de archivos, en lugar de usar el archivo incluido en el archivo mongodb-crypt JAR. Puede encontrar instrucciones para instalar libmongocrypt en Linux en el manual del servidor. Si usa un gestor de paquetes para libmongocrypt instalar, Java Native Access (JNA) lo encontrará allí sin necesidad de configuración adicional. Como alternativa, puede especificar la ruta de búsqueda configurando la LD_LIBRARY_PATH variable de entorno con la ruta del archivo del libmongocrypt paquete.

      Recomendamos la instalación directa porque la biblioteca compartida incluida no se vincula con OpenSSL debido a la posibilidad de incompatibilidades binarias de OpenSSL.

      La carga de la librería compartida es manejada por JNA. Se puede consultar las reglas para el orden de búsqueda de carga de librerías en la documentación de la clase NativeLibrary.

  • Corrige un problema que provocaba que los métodos InsertOneResult.getInsertedId() y InsertManyResult.getInsertedIds() devolvieran ID de documentos incorrectos en algunas situaciones. Este cambio se ha retroportado al driver de Kotlin Sincronizar v5.1.4 y v4.11.4.

  • Cuando una operación de clúster fragmentado no es exitosa, el controlador evita seleccionar el mismo servidor mongos para los intentos de reintento de la operación si hay otros servidores mongos disponibles.

  • Agrega los metadatos de alcanzabilidad necesarios cuando tu aplicación utiliza GraalVM Native Image. Estos metadatos sustituyen la necesidad de recopilar metadatos de alcance cuando se utilizan las librerías del driver. Para aprender más, consulte Metadatos de alcanzabilidad en la documentación de GraalVM.

    Este cambio no agrega las entradas de recursos libjnidispatch y libmongocrypt, porque agregar entradas para todas las plataformas soportadas (destinos) afecta significativamente el tamaño de los ejecutables nativos construidos usando GraalVM Native Image. Consulta este archivo de muestra resource-config.json en el repositorio de GitHub del controlador para ver cómo especificar estas entradas explícitamente si tu aplicación depende de la librería org.mongodb:mongodb-crypt.

  • Permite la búsqueda de vectores exactos al extender la API VectorSearchOptions para introducir los siguientes subtipos de opciones específicas:

    • ExactVectorSearchOptions: Utiliza este tipo de opciones para habilitar la coincidencia precisa, asegurando que los resultados sean los vectores más cercanos a un vector de query determinado.

    • ApproximateVectorSearchOptionsUtiliza este tipo de opción para habilitar búsquedas que podrían no devolver los vectores más cercanos exactos. Puedes enviar un parámetro numCandidates al instanciar este tipo para especificar la cantidad de vecinos más cercanos a considerar.

    Para obtener más información sobre cómo utilizar la funcionalidad de búsqueda vectorial de MongoDB, consulte el Inicio rápido de búsqueda vectorial de MongoDB y seleccione Kotlin (Sync) desde el menú desplegable de idioma.

  • Agrega soporte para los serializadores de la librería kotlinx-datetime que permiten asignar los tipos de fecha y hora de Kotlin a BSON como los tipos esperados en lugar de cadenas. Para obtener más información, consulte la sección Serializar fechas y horas de la guía de serialización de Kotlin.

  • Admite la serialización de los valores JsonElement. Para trabajar con el tipo JsonElement, debes agregar la librería kotlinx-serialization-json como una dependencia en tu aplicación.

La versión del parche del controlador 5.1.3 incluye los siguientes cambios:

  • Corrige un problema que podría provocar errores de afirmación al utilizar tipos Cursor.

La versión del parche del controlador 5.1.2 incluye los siguientes cambios:

  • Compatibilidad para codificar clases de datos de Kotlin con tipos de parámetros genéricos anulables. Por ejemplo, puedes codificar la clase Container en el siguiente código:

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

La versión del parche del controlador 5.1.1 incluye los siguientes cambios:

  • Al utilizar el MONGODB-OIDC mecanismo de autenticación, no debe incluir comas en el valor de la authMechanismProperties cadena de conexión. Para obtener más información sobre este comportamiento, consulte la guía de MONGODB-OIDC.

Advertencia

Descontinuaciones en este lanzamiento

Para evitar cambios disruptivos en futuras versiones principales del driver, reemplaza cualquier código de aplicación que dependa de elementos de programación obsoletos.

Esta sección incluye la siguiente información:

  • La compatibilidad con MongoDB Server v3.6 está obsoleta y se eliminará en la próxima versión del controlador. Para saber cómo actualizar su implementación de MongoDB Server, consulte las Notas de la versión en el manual de MongoDB Server.

  • Pruebas internas de la tecnología de imagen nativa GraalVM. Estas pruebas implican compilar aplicaciones nativas utilizando la herramienta GraalVM native-image.

  • Soporte mejorado para el mecanismo de autenticación MONGODB-OIDC. Para aprender más sobre OIDC, consulta la guía MONGODB-OIDC.

  • 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 usar bson-kotlinx.

  • Corrige un problema en el cual el discriminador de clases era el primer campo al decodificar, lo que resultaba en errores de tipo de campo al usar una instancia polimórfica de MongoCollection.

  • 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.

  • Introduce la opción URI de conexión serverMonitoringMode. Para obtener más información, consulte la guía Especificar opciones de conexión.

Entre las nuevas funcionalidades de la versión 5.0 de la versión de driver se incluyen:

  • El constructor KotlinSerializerCodecProvider ahora acepta objetos serializersModule y bsonConfiguration:

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

    Esto facilita la personalización de tu configuración.

  • Soluciona un error de reflexión de Kotlin que ocasionaba el borrado del tipo de contenedor.

Volver

Validar las firmas de los artefactos del driver

En esta página