Obtenga información sobre las nuevas características, mejoras y correcciones introducidas en las siguientes versiones del controlador MongoDB Scala:
Novedades en 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 Cifrado en uso.
Nota
Característica experimental
Las consultas de prefijo, sufijo y subcadena de cifrado consultable son inestables y su seguridad no está garantizada hasta que estén disponibles para el público general (GA). Úselas solo en cargas de trabajo experimentales.
Añade un
nsTypeCampo para objetosChangeStreamDocument. Este campo contiene el tipo de espacio de nombres (COLLECTION,TIMESERIESoVIEW) del evento de cambio.Agrega compatibilidad experimental con el tiempo de espera de operación del lado del cliente (CSOT) para la autenticación OIDC.
Nota
Característica experimental
La función CSOT es experimental y podría cambiar en futuras versiones de controladores.
Cuando se configura
timeoutMSpara CSOT, el controlador ignora el valor de la configuración de conexiónmaxWaitTime.Añade un método
appendMetadata()a la claseMongoClient. Puedes usar este método para añadir metadatos a los de un cliente existente. El tamaño máximo de metadatos es de 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.Deja 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 propiedadreadNamecoincide con la clave discriminadora, el controlador serializa el campo solo una vez.Después de llamar al método
next()otryNext()en una instanciaCommandCursorResult, el controlador borra la propiedadCommandCursorResult.resultspara liberar memoria.La clase
PojoBuilderHelpercrea modelos de propiedades que incluyen propiedades de clases e interfaces abstractas.El controlador publica y registra los siguientes eventos cuando cambia la topología del clúster:
ClusterOpeningEvent:Se publica cuando se abre la topologíaClusterDescriptionChangedEvent:Se publica cuando cambia la descripción de la topología.ClusterClosedEvent: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 miembro principal no coincide con los valores de estos campos en los otros miembros del conjunto de réplicas.
Para obtener más información sobre los conjuntos de réplicas, consulte Replicación en el manual de MongoDB Server.
Novedades en 5.5.1
La versión del parche del controlador 5.5.1 incluye los siguientes cambios:
Corrige un problema en el que la reautenticación de OIDC fallaba cuando se activaba mediante una operación ejecutada en una sesión, incluidas las operaciones ejecutadas en una transacción.
Novedades en 5.5
Importante
Eliminación del soporte para el servidor MongoDB 4.0
El controlador de Scala v5.5 elimina la 4.0 compatibilidadcon MongoDB Server. 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:
Agrega soporte para la opción
connectTimeoutMScuando se utiliza la capa de transporte TLS predeterminada.
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 deshabilitada.
TLS deshabilitado.
Esperamos aumentos de rendimiento similares para todos los controladores Java de MongoDB porque comparten la API driver-core mejorada.
Configuración de transporte estándar
La siguiente tabla muestra los resultados de las pruebas de rendimiento para v5.5 del controlador configurado con la configuración de transporte estándar. Cada fila incluye la función probada, el porcentaje de mejora del rendimiento y la puntuación z.
Característica | Porcentaje de mejora | Puntuación Z |
|---|---|---|
Descodificación profunda de BSON | 19.44% | 5.4 |
Codificación BSON profunda | 102% | 22.8 |
Encuentra muchos y vacía 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 masiva de colección con documentos de gran tamaño | 96.5% | 8.79 |
Inserción masiva de 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 v5.5 del controlador configurado con la configuración de transporte Netty. Cada fila incluye la función probada, el porcentaje de mejora del rendimiento y la puntuación z.
Característica | Porcentaje de mejora | Puntuación Z |
|---|---|---|
Encuentra muchos y vacía 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 masiva de colección con documentos de gran tamaño | 104.9% | 38.72 |
Inserción masiva de 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:
Implementa una API de escritura masiva de cliente que permite realizar operaciones de escritura en múltiples bases de datos y colecciones en la misma llamada. Para obtener más información sobre esta función, consulte la sección "Escritura masiva de cliente" de la guía "Operaciones de escritura masiva".
Admite operaciones
$lookuppara CSFLE y QE. Para obtener más información, consulte las siguientes referencias en el manual del servidor:Presenta una Lista de Materiales (BOM) para administrar las versiones de los artefactos de la JVM de MongoDB que podría usar en su aplicación. Para ver las instrucciones sobre cómo agregar la BOM a su aplicación, consulte la lista de dependencias mongodb-driver-bom en el sitio web del Repositorio de Maven. Solo puede usar la BOM si usa Maven como administrador de dependencias, ya que sbt no admite BOM.
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
ClientUpdateOneOptionsordenación a lasClientReplaceOneOptionsclases y. Este cambio 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 "Operaciones de actualización" y "Operaciones de reemplazo" de la guía "Operaciones de escritura masiva".Añade compatibilidad con Kubernetes para la autenticación OIDC. Para obtener más información, consulta la documentación de la API de MongoCredential.
Agrega soporte de primera clase para los siguientes operadores de consulta de búsqueda de MongoDB:
phraseregexqueryStringequalsmoreLikeThisinwildcard
Para obtener más información, consulte la sección Métodos auxiliares del operador de búsqueda de la guía de agregación.
Actualiza los cursores para actualizar la configuración
timeoutMScuando llama 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 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 de MongoDB Server 4.0 y aumentará la versión mínima compatible 4.2 a. Recomendamos realizar cambios en su aplicación para adaptarla a los cambios importantes. Consulte la sección Notas de la versión en el manual de MongoDB Server para obtener más información sobre la actualización.
Añade la clase
BinaryVectorpara implementar el subtipo binario BSON 9 para el almacenamiento y la recuperación de vectores. Esta clase proporciona un almacenamiento de valores más eficaz en comparación con una lista de instanciasDouble. Puede crear los siguientes tipos de vectores según el tipo de elementos que contenga:Int8BinaryVector: Vector de enteros con signo de 8bitsFloat32BinaryVector: Vector de números 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 obtener más información sobre este tipo, consulte la documentación de la API BinaryVector.
Elimina la equidad explícita de la implementación del grupo de conexiones. Este cambio podría contribuir a un mejor rendimiento al usar una instancia
MongoClienten varios subprocesos de la aplicación. Sin embargo, este cambio podría causar una mayor latencia de cola.Añade una opción de ordenación a los
updateOne()replaceOne()métodos y. Este cambio también permite configurar una opción de ordenación al crearReplaceOneModelUpdateOneModelinstancias y. Para obtener más información,consulte las guíasActualizar documentos, Reemplazar documentos y Operaciones de escritura masiva.
Novedades en 5.2
Importante
Eliminación del soporte para el servidor MongoDB 3.6
El controlador de Scala v5.2 elimina la 3.6 compatibilidadcon MongoDB Server. Para obtener más información sobre las versiones compatibles del servidor, consulte Compatibilidad.
La versión del controlador 5.2 incluye los siguientes cambios, correcciones y características:
Permite configurar un tiempo de espera para operaciones del lado del cliente (CSOT). Esta función permite configurar un tiempo de espera único en la
MongoClientinstancia que se aplica a todas las operaciones realizadas con ese cliente. Para obtener más información, consulte la guía "Limitar el tiempo de ejecución del servidor".Si, y solo si, la función CSOT está habilitada, el controlador ignora las siguientes opciones de tiempo de espera:
waitQueueTimeoutMSsocketTimeoutMSwTimeoutMSmaxTimeMSmaxCommitTimeMS
Importante
Característica experimental
CSOT es una función experimental y aún no está disponible para producción. Esta función es opcional en la versión actual y las opciones de tiempo de espera existentes siguen funcionando.
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 documentación de la API SearchIndexModel.Delega la implementación de los algoritmos que implementan los mecanismos de autenticación
SCRAM-SHA-1ySCRAM-SHA-256al proveedor JCA configurado. Este cambio significa que su aplicación puede usar un proveedor JCA configurado compatible con FIPS para proporcionar 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 gracias 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 el sistema operativo:
Windows: Actualice su
mongodb-cryptversión a5.2.0 v.Mac: Actualice su
mongodb-cryptversión a5.2.0 v.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 bibliotecas compartidas la gestiona JNA. Puede consultar las reglas para el orden de búsqueda de la carga de bibliotecas en la documentación de la clase NativeLibrary.
Se solucionó un problema que provocaba que los métodos
InsertOneResult.getInsertedId()yInsertManyResult.getInsertedIds()devolvieran ID de documento incorrectos en algunas situaciones. Este cambio se ha implementado en los controladores de Scala 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
mongospara los intentos de reintento de la operación si hay otros servidoresmongosdisponibles.Añade los metadatos de accesibilidad necesarios cuando la aplicación utiliza la imagen nativa de GraalVM. Estos metadatos eliminan la necesidad de recopilarlos al usar las bibliotecas de controladores. Para obtener más información, consulte Metadatos de Accesibilidad en la documentación de GraalVM.
Este cambio no agrega las
libjnidispatchlibmongocryptentradas de recursos y, ya que agregar entradas para todas las plataformas compatibles (destinos) afecta significativamente el tamaño de los ejecutables nativos generados con la imagen nativa de GraalVM. 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 laorg.mongodb:mongodb-cryptbiblioteca.Permite la búsqueda de vectores exactos al extender la API
VectorSearchOptionspara introducir los siguientes subtipos de opciones específicas:ExactVectorSearchOptions:Utilice este tipo de opciones para habilitar una coincidencia precisa, garantizando que los resultados sean los vectores más cercanos a un vector de consulta 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 el Inicio rápido de búsqueda vectorial de MongoDB y seleccione Scala desde el menú desplegable de idioma.
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.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 caracteres de coma en el valor de la cadena de conexiónauthMechanismProperties.
Novedades en 5.1
Importante
Fin de vida útil del servidor MongoDB v3.6
La compatibilidad con MongoDB Server v3.6 está obsoleta en esta versión y se eliminará en la versión v5.2 del controlador.
Para aprender sobre otros cambios introducidos en v5.1, consulte la guía Qué hay de nuevo en la documentación del Java Sync Driver.