Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Notas de versión

Descubra qué hay de nuevo en:

La versión del controlador 5.12 incluye los siguientes cambios, correcciones y funcionalidades:

  • Agrega compatibilidad con la Gestión Inteligente de Carga de Trabajo (IWM) de MongoDB 9.0. El controlador ahora maneja de manera eficiente los escenarios de bloqueo de escritura y optimiza el establecimiento de conexiones durante condiciones de alta carga para mantener la disponibilidad de la aplicación. Esta función incluye los siguientes cambios:

    • Agrega el método MongoClientSettings.Builder.maxAdaptiveRetries() y la opción de cadena de conexión maxAdaptiveRetries, que configuran el número máximo de intentos de reintento para los comandos que fallan con un error de sobrecarga reintentable.

    • Agrega el método MongoClientSettings.Builder.enableOverloadRetargeting() y la opción de cadena de conexión enableOverloadRetargeting, que controlan si los reintentos de comandos que fallan con un error etiquetado como SystemOverloadedError intentan usar un servidor diferente. El valor predeterminado es false. Esta configuración no afecta a los clústeres fragmentados.

    • Agrega las constantes MongoException.SYSTEM_OVERLOADED_ERROR_LABEL y MongoException.RETRYABLE_ERROR_LABEL. Un error de sobrecarga reintentable lleva ambas etiquetas. Si no actualiza la versión de su controlador o si implementa una lógica de reintento personalizada, es posible que deba actualizar el código de manejo de errores para tener en cuenta los nuevos errores relacionados con servidores sobrecargados. Use estas constantes para identificar y manejar dichos errores.

    Esta función requiere MongoDB 9.0 o posterior. Para obtener más información sobre IWM, consulte la sección "Bloqueo de escritura" en la documentación de Atlas.

Para obtener más información sobre esta versión, consulte las 512 notas de la versión v. en GitHub.

Importante

El controlador Kotlin 5.11.1 incluye correcciones para las siguientes vulnerabilidades CVE:

Para obtener la información más reciente sobre las actualizaciones de seguridad de MongoDB, consulte los boletines de seguridad de MongoDB.

Para obtener más información sobre esta versión, consulte las notas de la versión511v..1 en GitHub.

La versión de driver 5.11 no incluye ningún cambio, corrección o funcionalidad que se aplique al driver de Kotlin.

Para obtener más información sobre esta versión, consulte las 511 notas de la versión v. en GitHub.

La versión del controlador 5.10 incluye los siguientes cambios, correcciones y funcionalidades:

  • Corrige un problema por el cual un campo ByteArray en una clase de datos de Kotlin se codificaba como una matriz BSON de valores Int32 en lugar de BSON Binario, lo que podía aumentar significativamente el tamaño del documento. Esta versión restaura la codificación BSON Binario, igualando el comportamiento anterior a la versión5.1.3. El controlador sigue decodificando los datos escritos en formato de matriz, pero cualquier usuario que no sea el controlador y que acceda a estos datos podría necesitar actualizaciones para manejar la nueva codificación.
  • Agrega la etapa de agregación $scoreFusion, que combina y normaliza las puntuaciones de múltiples procesos de búsqueda. Esta etapa requiere MongoDB 8.2 o posterior.

  • Agrega una API de constructor fluido para la etapa de agregación $score. Utilice esta API para configurar la normalización de puntuación, la ponderación y los detalles de la puntuación. Esta funcionalidad requiere MongoDB 8.2 o posterior.

  • Agrega las opciones parentFilter y nestedOptions, que permiten incrustaciones anidadas y matrices de incrustaciones en consultas $vectorSearch.

Para obtener más información sobre esta versión, consulte las 510 notas de la versión v. en GitHub.

El 5.9.2 La versión de parchado del driver incluye los siguientes cambios:

  • Corrige un problema por ProxySettings.toString() el que incluía el5 nombre de usuario y la contraseña del proxy SOCKS, lo que provocaba que estas credenciales aparecieran en los registros de la aplicación. Este problema afecta a las versiones del controlador 4.11.0 5.9.1a. Para obtener más información,consulte JAVA-6266 y CVE-202618710-.

Advertencia

Suprimir el mensaje de registro sin actualizar

Si utiliza la autenticación de proxy SOCKS5 y no puede actualizar a la v5.9.2, configure el registrador org.mongodb.driver.client en WARN o superior para suprimir el mensaje de construcción del cliente. No recomendamos esto como una medida a largo plazo, porque silencia la información de diagnóstico que es valiosa para el soporte y no remueve las credenciales que ya están escritas en los registros existentes.

Para obtener más información sobre esta versión, consulte las notas de la versión59v..2 en GitHub.

La versión del controlador 5.9 incluye los siguientes cambios, correcciones y funcionalidades:

  • Promueve las query de prefijo, sufijo y subcadena de Queryable Encryption (QE) a disponibilidad general (GA). Estos tipos de query son compatibles con MongoDB 9.0 y versiones posteriores. Para obtener más información sobre QE, consulta encriptación en uso.

  • Cambia el nombre de la API de cifrado explícito para las query de string de QE de Text a String. Para realizar una query de string de QE, realiza los siguientes cambios:

    • Utilice la clase StringOptions en lugar de TextOptions.

    • Utilice el método EncryptOptions.stringOptions() en lugar de textOptions().

    • Utilice el método EncryptOptions.getStringOptions() en lugar de getTextOptions().

    • Establezca el algoritmo de cifrado en "String".

  • Mejora la versión libmongocrypt a la 1.20.0.

Para obtener más información sobre esta versión, consulte las 59 notas de la versión v. en GitHub.

La versión del controlador 5.8 incluye los siguientes cambios, correcciones y funcionalidades:

  • Añade una API de constructor tipado para las definiciones del índice de búsqueda vectorial.

  • Añade soporte para la etapa de agregación $rerank. Cuando esté conectado a un clúster de Atlas que ejecute MongoDB 8.3 o posterior, puedes usar el método constructor Aggregates.rerank() para crear esta etapa.

  • Agrega soporte para el operador vectorSearch en una etapa de pipeline $search. Puedes usar el Método de construcción SearchOperator.vectorSearch() para realizar una búsqueda vectorial de vecino más cercano aproximada (ANN, por sus siglas en inglés), o SearchOperator.vectorSearchExact() para una búsqueda de vecino más cercano exacta (ENN, por sus siglas en inglés). El VectorSearchOperator devuelto admite un método filter() para aplicar prefiltros léxicos.

  • Añade soporte para configurar la fuente almacenada en las definiciones de índice de búsqueda vectorial utilizando el método storedSource() en la clase VectorSearchIndexDefinition.

  • Se agrega soporte para solicitar campos de origen almacenados en los resultados de $vectorSearch usando el método returnStoredSource() en la clase VectorSearchOptions.

  • Optimiza el RawBsonDocument rendimiento de codificación y decodificación eliminando las asignaciones intermedias.

  • Corrige un fallo en la resolución del paquete OSGi cuando Micrometer no está presente.

  • Agrega documentación Javadoc a las clases MongodbObservation y MongodbObservationContext.

  • Mejora la versión libmongocrypt a la 1.18.1.

Para obtener más información sobre esta versión, consulte las 58 notas de la versión v. en GitHub.

El 5.7.1 La versión de parchado del driver incluye los siguientes cambios:

  • Corrige las advertencias de Javadoc en la integración de Micrometer.

  • Marca las importaciones de Micrometer OSGi como opcionales para resolver problemas de resolución de paquetes en entornos de tiempo de ejecución de OSGi.

Para obtener más información sobre esta versión, consulte las notas de la versión57v..1 en GitHub.

La versión del controlador 5.7 incluye los siguientes cambios, correcciones y funcionalidades:

  • Importante: En una próxima actualización menor se retirará el soporte para la versión 4.2 de MongoDB Server y se elevará la versión mínima compatible a 4.4. Este cambio está alineado con los Cronogramas del ciclo de vida del software de MongoDB.

    Recomendamos realizar cambios en tu aplicación para adaptarse a los cambios disruptivos. Para obtener más información sobre cómo actualizar su versión del servidor, consulte la sección Notas de la versión en el manual de MongoDB Server.

  • Añade soporte para Scala 3.

  • Agrega soporte de incrustación automática como parte de las API de búsqueda vectorial.

  • Agrega soporte de seguimiento de Micrometer/OpenTelemetry al controlador de reactive-streams e incluye mejoras generales en el soporte de Micrometer.

  • Agrega soporte de bucle asincrónico seguro para la pila con el patrón de trampolín para prevenir errores de Stack Overflow.

  • Mejora el manejo de los tiempos de espera en el lado del cliente para considerar mejor las variaciones en el tiempo de ida y vuelta (RTT), junto con diversas pequeñas mejoras relacionadas con los tiempos de espera.

  • Reutiliza ConnectionSource para evitar una selección adicional de servidores.

  • Restaura la ruta optimizada del códec para la codificación de RawBsonDocument, corrigiendo una regresión en el rendimiento.

  • Libera la conexión entre las respuestas vacías getMore en AsyncCommandCursor, evitando el agotamiento del pool de conexiones cuando los change streams inactivos alcanzan maxPoolSize.

  • El cliente de cifrado ahora utiliza una mayoría de writeConcern.

  • Maneja errores inesperados de fin de flujo desde KMS.

  • Corrige el JsonBsonEncoder análisis de los números JsonPrimitive, donde los números formateados científicamente se analizaban como Ints o Longs simples.

  • Simplifica los nombres de los hilos de ServerMonitor y elimina el carácter =, que algunos sistemas de supervisión no pueden procesar.

  • Corregir la decodificación BSON opcional de Kotlin.

  • Actualiza libmongocrypt a 1.17.3.

  • Utiliza ZstdInputStreamNoFinalizer para la descompresión Zstandard.

  • Actualiza Netty a la última versión.

  • Actualizar Snappy para las últimas correcciones de seguridad.

  • Actualiza JUnit 5 a la última versión.

  • Alinea el nivel de registro a advertencia al remover un servidor del clúster.

La versión del controlador 5.6 incluye los siguientes cambios, correcciones y funcionalidades:

  • Agrega compatibilidad experimental para consultas de prefijo, sufijo y subcadenas en Queryable Encryption. Para obtener más información sobre QE, consulta 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.

  • Añade un campo nsType a los objetos ChangeStreamDocument. Este campo contiene el tipo de namespace (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 timeoutMS está configurado para CSOT, el controlador ignora el valor de la configuración de conexión de 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. Puedes crear operaciones de lectura y guardar utilizando métodos constructores 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 la topología del clúster cambia:

    • ClusterOpeningEventPublicado cuando se abre la topología

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

    • ClusterClosedEventPublicado cuando la topología se cierra

  • El driver lanza un/a MongoStalePrimaryException cuando el miembro primario del set de réplicas se 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 sets de réplicas, consulta Replicación en el manual del servidor de MongoDB.

El 5.5.1 La versión de parchado del driver 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 el servidor MongoDB 4.0

Driver de Kotlin v5.5 remueve el soporte para el servidor MongoDB 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 funcionalidades:

  • Agrega soporte para la opción connectTimeoutMS cuando se usa la capa de transporte TLS por defecto.
  • 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
Puntaje 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

Encontrar 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 varios archivos JSON-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 con documentos pequeños

39.3%

5.72

Inserte uno con documentos grandes

82.4%

7.28

Inserción masiva de clientes con documentos pequeños

49.5%

17.99

Inserción masiva en colecciones 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 la puntuación z.

funcionalidad
Porcentaje de mejora
Puntaje Z

Encontrar varios y vaciar el cursor

40.3%

14.81

Encontrar uno por ID

4.4%

4.12

Importación de varios archivos JSON-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

Inserte uno con documentos grandes

66.6%

58.65

Inserción masiva de clientes con documentos pequeños

36.1%

15.41

Inserción masiva en colecciones con documentos pequeños

39.3%

37.38

Inserción masiva con documentos pequeños

35.1%

41.51

Tip

Para obtener más información sobre cómo realizamos pruebas de referencia del desempeño de los conductores, consulte la Evaluación comparativa del desempeño especificación.

La versión del controlador 5.4 incluye los siguientes cambios, correcciones y funcionalidades:

  • 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 agregar la lista de materiales (BOM) a la aplicación, consulte el paso Agregar la lista de materiales del controlador en la guía de inicio rápido.

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

  • Agrega una opción de ordenación a las clases ClientUpdateOneOptions y ClientReplaceOneOptions. Este cambio le permite establecer un orden de clasificación para las operaciones de actualización y reemplazo en las escrituras masivas del cliente. Para obtener más información, consulte las secciones Actualizar operación y Reemplazar operación de la guía Operaciones masivas.

  • 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 aprender más, consulta la sección Métodos de operadores de búsqueda de la guía de desarrolladores de agregaciones.

  • 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 los cambios en esta versión, consulte las notas de5 la versión4 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 aprender más sobre esta funcionalidad, consulte Vector Quantization en la documentación de Atlas. Para aprender a utilizar este tipo al usar la funcionalidad de Búsqueda de Vectores de MongoDB, consulta la guía de MongoDB Vector Search.

  • 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 le permite establecer un tipo de ordenación como opción al crear instancias de ReplaceOneModel y UpdateOneModel. Para más información, consulta las guías Actualizar Documentos y Operaciones en Lote.

  • Soporte para usar los métodos de clase de desarrolladores directamente con las propiedades de clase de datos. Para obtener más información, consulta la Guía para usar Builders con Clases de Datos. Esta funcionalidad es compatible con el paquete de extensiones del controlador de Kotlin 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 Operaciones masivas.

Importante

Eliminación del soporte para el servidor MongoDB 3.6

Driver de Kotlin v5.2 remueve el soporte para el servidor MongoDB 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.

  • Agrega la clase SearchIndexType, que puedes pasar al construir una instancia de SearchIndexModel. Este cambio te permite especificar el tipo de índice al crear un índice de Atlas Search o búsqueda vectorial. Para saber más, consulta MongoDB Search y MongoDB Vector Search Indexes en la guía de Índices.

  • 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 versionado de la dependencia mongodb-crypt para que coincida con el de los controladores de la 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 el 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: Instala libmongocrypt.so directamente en el sistema de archivos, en vez de usar el archivo que está incluido dentro del archivo JAR mongodb-crypt. Puedes encontrar instrucciones de Linux para instalar libmongocrypt en el manual del servidor. Si utilizas un gestor de paquetes para instalar libmongocrypt, Java Native Access (JNA) lo encontrará ahí sin necesidad de más configuración. Como alternativa, puedes especificar la ruta de búsqueda configurando la variable de entorno LD_LIBRARY_PATH a la ruta de archivo del paquete libmongocrypt.

      Recomendamos la instalación directa porque la librería compartida incluida no se enlaza con OpenSSL debido al potencial de incompatibilidades binarias con OpenSSL.

      La carga de la librería compartida es manejada por JNA. Puedes 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 causaba que los métodos InsertOneResult.getInsertedId() y InsertManyResult.getInsertedIds() devolvieran identificadores de documentos incorrectos en algunas situaciones. Este cambio se aplica retroactivamente al driver de Kotlin v5.1.4 y v4.11.4.

  • Cuando una operación de clúster segmentado no tiene éxito, el driver evita seleccionar el mismo servidor mongos para reintentar 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 añade las libjnidispatch libmongocrypt entradas de recursos y, ya que añadir entradas para todas las plataformas compatibles (objetivos) afecta significativamente al tamaño de los ejecutables nativos creados con GraalVM Native Image. Consulte este archivo resource-config.json de ejemplo en el repositorio de GitHub del controlador para ver cómo especificar estas entradas explícitamente si su aplicación depende de la org.mongodb:mongodb-crypt biblioteca.

  • Permite una búsqueda vectorial precisa al extender la API de VectorSearchOptions para introducir los siguientes subtipos de opciones específicos:

    • 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 el uso de la funcionalidad de MongoDB Vector Search, consulta MongoDB Vector Search en la guía "Aggregates Builders".

  • 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 valores JsonElement. Para trabajar con el JsonElement tipo, debe agregar la kotlinx-serialization-json biblioteca como dependencia en su aplicación.

El 5.1.3 La versión de parchado del driver incluye los siguientes cambios:

  • Corrige un problema que podía causar errores de aserción al usar tipos de Cursor.

El 5.1.2 La versión de parchado del driver 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?>
    )

El 5.1.1 La versión de parchado del driver incluye los siguientes cambios:

  • Cuando utilices el mecanismo de autenticación MONGODB-OIDC, no debes incluir caracteres de coma en el valor de la cadena de conexión authMechanismProperties. Para aprender más sobre este comportamiento, consulta la sección MONGODB-OIDC de la guía de autenticación de empresa.

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:

  • El soporte para MongoDB server v3.6 está obsoleto y se eliminará en la siguiente versión del driver. Para aprender a actualizar tu implementación del servidor de MongoDB, consulta las Notas de la versión en el manual del servidor de MongoDB.
  • 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 obtener más información sobre OIDC, consulta la sección OIDC (Federación de identidad de cargas de trabajo) en la guía de mecanismos de autenticación empresarial.

  • Corrige un problema en el que las operaciones utilizaban el códec incorrecto al usar una instancia polimórfica de 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 la serialización polimórfica. Para obtener más información, consulte la sección de Serialización polimórfica de la guía de Serialización de Kotlin.

  • Presenta la opción de URI de conexión serverMonitoringMode. Para obtener más información, consulte la guía 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.

Esta sección incluye la siguiente información:

Advertencia

Descontinuaciones en este lanzamiento

Para evitar cambios disruptivos en futuras versiones importantes del controlador, sustituya cualquier código de aplicación que dependa de métodos y tipos obsoletos.

La versión 4.11 del driver descontinúa los siguientes elementos:

  • Los siguientes métodos relacionados con la dirección de red están obsoletos y se eliminarán en la v5.0:

    • Los métodos ServerAddress getSocketAddress() getSocketAddresses()y.

      En lugar de getSocketAddress(), utiliza el método de instancia getByName() de java.net.InetAddress.

      En lugar de getSocketAddresses(), utiliza el método de instancia getAllByName() de java.net.InetAddress.

    • El método UnixServerAddress. getUnixSocketAddress()

      En lugar de getUnixSocketAddress(), construya una instancia de jnr.unixsocket.UnixSocketAddress. Pasar la ruta completa del archivo del socket UNIX al constructor. Por defecto, MongoDB crea un archivo de socket UNIX situado en "/tmp/mongodb-27017.sock". Para obtener más información sobre el UnixSocketAddress, consulta la documentación de la API UnixSocketAddress.

  • Los siguientes métodos y tipos relacionados con la interfaz StreamFactory están obsoletos y se eliminarán en la5 0versión.:

    • streamFactoryFactory() método de MongoClientSettings.Builder

    • getStreamFactoryFactory() método de MongoClientSettings

    • NettyStreamFactoryFactory clase

    • NettyStreamFactory clase

    • AsynchronousSocketChannelStreamFactory clase

    • AsynchronousSocketChannelStreamFactoryFactory clase

    • BufferProvider clase

    • SocketStreamFactory clase

    • Stream clase

    • StreamFactory clase

    • StreamFactoryFactory clase

    • TlsChannelStreamFactoryFactory clase

    Si configuras Netty utilizando MongoClientSettings.Builder.streamFactoryFactory(), tu 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 el TransportSettings.nettyBuilder() como se muestra en el siguiente ejemplo:

    import com.mongodb.connection.TransportSettings;
    // ...
    MongoClientSettings settings = MongoClientSettings.builder()
    .transportSettings(TransportSettings.nettyBuilder().build())
    .build();

Las nuevas funciones de la versión 4.11 de driver incluyen:

  • Soporte para conectarse a MongoDB utilizando un proxy SOCKS5.

  • Se agregó el método getSplitEvent() a la clase ChangeStreamDocument para identificar fragmentos de un evento de flujo de cambios que excede los 16MB. Debe usar la etapa de agregación $changeStreamSplitLargeEvent en su flujo de cambios para gestionar eventos que superen los 16 MB.

  • Se ha agregado un generador de etapas de agregación para $vectorSearch.

  • Se agregaron asistentes para la gestión de índices de MongoDB Search.

  • Se actualizaron las versiones de dependencia de las librerías de compresión Snappy y Zstd. Para obtener más información sobre las versiones actuales de dependencias, consulta Comprimir tráfico de red.

  • Se añadieron getElapsedTime() métodos a las siguientes clases para supervisar la duración de los eventos del pool de conexiones:

  • Soporte para hilos virtuales de Java 21 y concurrencia estructurada. Los componentes internos del controlador se actualizaron para evitar el fijado innecesario de hilos virtuales y preservar el estado interrumpido de un hilo, ya que esto último es importante para la concurrencia estructurada, donde se utiliza para la cancelación.

    Para obtener más información sobre los hilos virtuales, consulta la propuesta de mejora de JDK sobre hilos virtuales. Para obtener más información sobre concurrencia estructurada, consulta la propuesta de mejora de JDK Concurrencia Estructurada .

  • Documentación API actualizada para los siguientes tipos:

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 de Kotlin del lado del servidor, tanto para corrutinas como para aplicaciones sincrónicas.

  • Soporte de códec para clases de datos de Kotlin.

  • Soporte para la librería kotlinx.serialization