Conozca las novedades en:
Novedades en la versión 5.6
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
nsTypeCampo para objetosChangeStreamDocument. Este campo contiene el tipo de espacio de nombres (COLLECTION,TIMESERIESoVIEW) 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
timeoutMSpara CSOT, el controlador ignora el valor de la configuración de conexiónmaxWaitTime.Agrega un método
appendMetadata()a la claseMongoClient. 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
AsyncReadOperationyAsyncWriteOperationen las interfacesReadOperationyWriteOperation. Se pueden crear operaciones de lectura y escritura mediante métodos de construcción en la claseOperations.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 lareadNamede la propiedad coincide con la clave de discriminador, el driver serializa el campo solo una vez.Después de llamar al método
next()otryNext()en una instancia deCommandCursorResult, el driver limpia la propiedadCommandCursorResult.resultspara liberar memoria.La clase
PojoBuilderHelpercrea 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íaClusterDescriptionChangedEventSe publica cuando cambia la descripción de la topologíaClusterClosedEvent:Se publica cuando se cierra la topología
El controlador lanza un
MongoStalePrimaryExceptioncuando 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
electionIdosetVersionen 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.
Novedades en 5.5.1
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.
Novedades en la versión 5.5
Importante
Eliminación del soporte para MongoDB Server 4.0
Controlador Java v5.5 elimina el soporte para MongoDB Server 4.0. Para aprender más 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.
Mejoras en el 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
localhostcon 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.
Configuración de transporte estándar
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 puesta a prueba, 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 |
Configuración de transporte de Netty
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.
Novedades en 5.4
La versión del controlador 5.4 incluye los siguientes cambios, correcciones y características:
Admite operaciones
$lookuppara 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 instrucciones sobre cómo agregar el BOM a tu aplicación, consulta el paso de agregar el Bill of Materials del driver de Java del tutorial Primeros pasos.
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
ClientUpdateOneOptionsyClientReplaceOneOptions. Este cambio te permite establecer un orden de clasificación para las operaciones de actualización y reemplazo en escrituras masivas del cliente. Para obtener más información, consulta las secciones Ejemplo de actualización y Ejemplo de reemplazo de la guía de operaciones masivas.Añade compatibilidad con Kubernetes para la autenticación OIDC. Para obtener más información, consulte la sección sobre Kubernetes de la guía OIDC (Federación de Identidad de Carga de Trabajo).
Agrega soporte de primera clase para los siguientes operadores del query de MongoDB Search:
phraseregexqueryStringequalsmoreLikeThisinwildcard
Para obtener más información, consulte la sección Crear etapas de búsqueda de pipeline de la guía de MongoDB Search.
Actualiza los cursores para refrescar la configuración
timeoutMScuando llamas aclose()sin afectar el tiempo de espera de la operación.Le permite utilizar un índice al llamar al método
distinct()especificando una opciónhint.
Para ver una lista completa de cambios en esta versión, consulte las 5.4 notas de la versión v en GitHub.
Novedades en la versión 5.3
La versión del controlador 5.3 incluye los siguientes cambios, correcciones y características:
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
BinaryVectorpara 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 deDouble. 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 8bitsFloat32BinaryVector: Vector de n\u00fameros de punto flotantePackedBitBinaryVector: 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 función, consulte Cuantización vectorial en la documentación de Atlas. Para saber cómo usar este tipo con la función de búsqueda vectorial de MongoDB, consulte la guía de búsqueda vectorial de MongoDB.
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
MongoClienten 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()yreplaceOne(). Este cambio también le permite establecer un tipo de ordenación como opción al crear instancias deReplaceOneModelyUpdateOneModel. Para obtener más información, consulta las guías Actualizar documentos y Operaciones de escritura masiva.
Añade una API de escritura masiva del cliente que permite realizar operaciones de escritura en varias bases de datos y colecciones a la vez. Para obtener más información sobre esta funcionalidad, consulta la sección Escritura Masiva de Clientes de la guía de Operaciones Masivas.
Novedades en 5.2.1
La versión del parche del controlador 5.2.1 incluye los siguientes cambios:
Corrige un problema que causaba que las aplicaciones compiladas con Quarkus lanzaran un
java.lang.UnsatisfiedLinkErroral inicializarlibmongocryptbindings.Se solucionó un problema que causaba un error en el paquete
mongodb-driver-coreal implementarse en un entorno de ejecución OSGi. El atributo de manifiestoImport-Packageorg.mongodb:mongodb-driver-coreya no requiere los paquetescom.oracle.svm.core.annotate.*.
Novedades en 5.2
Importante
Eliminación del soporte para MongoDB Server 3.6
Controlador Java v5.2 elimina el soporte para MongoDB Server 3.6. Para aprender más sobre las versiones compatibles del servidor, consulte Compatibilidad.
La versión del controlador 5.2 incluye los siguientes cambios, correcciones y características:
Un carácter de barra inclinada (
/) entre los nombres de host y las opciones del cliente en un URI de conexión es opcional. El controlador analiza los siguientes ejemplos de URI de conexión de la misma manera:// Connection URI with delimiting forward-slash String uri = "mongodb://example.com/?w=majority"; // Connection URI without delimiting forward-slash String uri = "mongodb://example.com?w=majority";
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
MongoClientque 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:
waitQueueTimeoutMSsocketTimeoutMSwTimeoutMSmaxTimeMSmaxCommitTimeMS
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 deSearchIndexModel. Este cambio te permite especificar el tipo de índice al crear un índice de Atlas búsqueda o búsqueda vectorial. Para obtener más información, consulta la guía de índices en MongoDB Search y Vector Search Indexes.Delegar la implementación de los algoritmos que implementan los mecanismos de autenticación
SCRAM-SHA-1ySCRAM-SHA-256en 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-cryptse publicarán junto con el controlador y compartirán el mismo número de versión. Debe actualizar sumongodb-cryptdependencia 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-crypta la v5.2.0.Mac: actualice su versión de
mongodb-crypta v5.2.0.Linux: Instale
libmongocrypt.sodirectamente en el sistema de archivos, en lugar de usar el archivo incluido en el archivomongodb-cryptJAR. Puede encontrar instrucciones para instalarlibmongocrypten Linux en el manual del servidor. Si usa un gestor de paquetes paralibmongocryptinstalar, Java Native Access (JNA) lo encontrará allí sin necesidad de configuración adicional. Como alternativa, puede especificar la ruta de búsqueda configurando laLD_LIBRARY_PATHvariable de entorno con la ruta del archivo dellibmongocryptpaquete.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.
Soluciona un problema que provocaba que los métodos
InsertOneResult.getInsertedId()yInsertManyResult.getInsertedIds()devolvieran identificadores de documento incorrectos en algunas situaciones. Este cambio se ha incorporado en las versiones v5.1.4 y v4.11.4 del controlador Java.Cuando una operación de clúster fragmentado no es exitosa, el controlador evita seleccionar el mismo servidor
mongospara los intentos de reintento de la operación si hay otros servidoresmongosdisponibles.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
libjnidispatchylibmongocrypt, 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íaorg.mongodb:mongodb-crypt.Permite la búsqueda de vectores exactos al extender la API
VectorSearchOptionspara 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ámetronumCandidatesal 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 función de búsqueda vectorial de MongoDB, consulte Búsqueda vectorial de MongoDB en la guía Generadores de agregados.
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 provocar errores de afirmación al utilizar tipos
Cursor.
Novedades en 5.1.2
La versión del parche del controlador 5.1.2 incluye los siguientes cambios:
Corrige un problema que impide que el driver codifique y decodifique clases concretas que extienden clases base genéricas, en casos en los que se especifica la clase base como el tipo genérico de la instancia
MongoCollection.Corrige un problema relacionado con la forma en que se validan los nombres de dominio cuando se utiliza la funcionalidad de proxy SOCKS5, lo que permite utilizar nombres de dominio con más de seis caracteres en el dominio de nivel superior.
Novedades en 5.1.1
La versión del parche del controlador 5.1.1 incluye los siguientes cambios:
Al utilizar el
MONGODB-OIDCmecanismo de autenticación, no debe incluir comas en el valor de laauthMechanismPropertiescadena de conexión. Para obtener más información sobre este comportamiento, consulte la guía de MONGODB-OIDC.Optimiza el rendimiento de GridFS al remover la clonación redundante de arreglos de bytes. Los tipos
GridFSDownloadStreamyGridFSUploadStreamutilizan el tipoBsonDocumenten lugar deDocument.
Novedades en 5.1
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:
Desusos en 5.1
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.
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 mecanismo de autenticación MONGODB-OIDC. Para obtener más información sobre OIDC, consulta la guía de OIDC (Federación de Identidad de Cargas de Trabajo).
Nuevas funcionalidades en 5.1
Introduce la opción URI de conexión
serverMonitoringMode. Para obtener más información sobre esta opción, consulta la guía de la Stable API.
Qué hay de nuevo en 5.0
Advertencia
Cambios disruptivos en esta versión
Esta versión del controlador presenta cambios importantes. Para obtener una lista de estos cambios, consulte la sección "Cambios importantes de la versión 5.0" en la guía de actualización.
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:
Obsolescencias en la 5.0
El método
org.mongodb.scala.Observable.completeWithUnit()está obsoleto. Este método ya no es útil porque el controlador ahora exponeorg.mongodb.scala.Observable[Unit]en lugar deorg.mongodb.scala.Observable[Void]. Esto se relaciona con un cambio disruptivo sobre Observables en esta versión.
Cambios de comportamiento en 5.0
El método
getElapsedTime()encom.mongodb.event.ConnectionReadyEventincluye el tiempo que se tarda en entregar elConnectionCreatedEvent. Es decir, el tiempo devuelto incluye la duración del métodocom.mongodb.event.ConnectionPoolListener.connectionCreated().Los métodos
getElapsedTime()encom.mongodb.event.ConnectionCheckedOutFailedEventycom.mongodb.event.ConnectionCheckedOutEventincluyen el tiempo que se tarda en entregar elcom.mongodb.event.ConnectionCheckOutStartedEvent. Es decir, el tiempo devuelto incluye la duración del métodocom.mongodb.eventConnectionPoolListener.connectionCheckOutStarted().
Nuevas funcionalidades en 5.0
La versión 5.0 de driver presenta las siguientes funcionalidades:
Agrega soporte para la opción
authorizedCollectiondel comandolistCollections. Esto se realizó cambiando los métodoscom.mongodb.client.MongoDatabase.listCollectionNames(). El tipo de retorno es ahoracom.mongodb.client.ListCollectionNamesIterable, mientras que antes era unMongoIterable<String>. Este cambio permite configurar el valor de retorno utilizando el métodoListCollectionNamesIterable.authorizedCollections()y especificando la opciónauthorizedCollections. Se hicieron cambios equivalentes a las siguientes clases e interfaces:com.mongodb.reactivestreams.client.MongoDatabaseorg.mongodb.scala.MongoDatabasecom.mongodb.kotlin.client.MongoDatabasecom.mongodb.kotlin.client.coroutine.MongoDatabase
Estos cambios introducen un cambio disruptivo binario en el método listCollectionsNames(). Para obtener más información sobre el método
MongoDatabase.listCollectionNames()y la opciónauthorizedCollections, consulte la listCollections en la página del manual del servidor o bien diríjase a Obtener una lista de colecciones.
Nota
La versión del parche v5.0.2 solucionó un problema relacionado con la forma en que se validan los nombres de dominio cuando se usa la funcionalidad de proxy SOCKS5, lo que permite usar nombres de dominio con más de seis caracteres en el dominio de nivel superior.
Novedades de la versión 4.11
Esta sección incluye la siguiente información:
Obsolescencias en 4.11
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 controlador deja obsoletos los siguientes elementos:
Los métodos de instancia
getStats()yisCapped()de la claseDBCollectionestán obsoletos. Los comandos correspondientes del servidor están obsoletos a partir de MongoDB v6.2. Usa la etapa$collStatsdel pipeline de agregación para recuperar la información proporcionada por estos métodos en su lugar. Puedes ejecutar la agregación como se muestra en el siguiente ejemplo de código:Cursor cursor = collection.aggregate(Arrays.asList( new BasicDBObject("$collStats", new BasicDBObject("storageStats", new BasicDBObject()))), AggregationOptions.builder().build() ); Para determinar si una colección es una colección con tamaño fijo, accede al valor del campo
storageStats.cappeddevuelto por la instanciaCursoren el ejemplo de agregación anterior.Para aprender más sobre el operador de agregación
$collStats, consulta la $collStats (agregación) entrada del manual del servidor.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(), 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 de
getUnixSocketAddress(), construya una instancia dejnr.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 elUnixSocketAddress, consulta la documentación de la API UnixSocketAddress.
Los siguientes métodos y tipos relacionados con la interfaz StreamFactory están obsoletos y programados para ser eliminados en la versión v5.0:
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 el TransportSettings.nettyBuilder() como se muestra en el siguiente ejemplo:
import com.mongodb.connection.TransportSettings; // ... MongoClientSettings settings = MongoClientSettings.builder() .transportSettings(TransportSettings.nettyBuilder().build()) .build();
Nuevas funcionalidades en 4.11
Las nuevas funciones de la versión 4.11 de driver incluyen:
Compatibilidad para conectarse a MongoDB utilizando un proxy SOCKS5. Para obtener más información, consulta Conéctate a MongoDB utilizando un proxy SOCKS5.
Nota
La versión del parche v4.11.3 solucionó un problema relacionado con la forma en que se validan los nombres de dominio cuando se usa la funcionalidad de proxy SOCKS5, lo que permite usar nombres de dominio con más de seis caracteres en el dominio de nivel superior.
Se añadió el método
getSplitEvent()a la claseChangeStreamDocumentpara identificar fragmentos de un evento de flujo de cambios que supera los 16MB. Debes utilizar la etapa de agregación$changeStreamSplitLargeEventen tu flujo de cambios para gestionar eventos que superen los 16MB. Para obtener más información, consulta Dividir eventos grandes de flujo de cambios.Se añadió un generador de etapas de agregación para
$vectorSearch. Para obtener más información, ver MongoDB Vector Search.Se añadieron asistentes para la gestión de índices de búsqueda de MongoDB Search. Para obtener más información, consulta Índices de Búsqueda de MongoDB.
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 agregaron métodos
getElapsedTime()a las siguientes clases para monitorear la duración de los eventos del grupo 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:
Novedades en 4.10
Las nuevas características de la versión 4.10 del controlador incluyen:
Implementación de los métodos
Accumulators.percentile()yAccumulators.median()para agregaciones estadísticas.Las interfaces en el paquete
com.mongodb.client.model.searchahora están marcadas como@Sealeden vez de@Evolving. Las interfaces selladas no deben ser extendidas ni implementadas por los usuarios de la librería.Se solucionó un problema por el cual el controlador emitía mensajes de registro duplicados al reintentar operaciones. Ahora, el controlador emite correctamente un mensaje de registro por cada reintento.
La interfaz
org.bson.codecs.Parameterizableestá obsoleta. En lugar de implementarla en un tipoCodecpersonalizado, anule el métodoCodecProvider.get()en elCodecProviderdel códec si este está diseñado para un tipo parametrizado.Compatibilidad con resolutores DNS personalizados.
Compatibilidad con cifrado consultable (QE). Para obtener más información sobre los requisitos para usar la función QE, consulte la tabla de compatibilidad de controladores de cifrado consultable.