Aprende sobre las nuevas funcionalidades, mejoras y correcciones presentadas en las siguientes versiones del MongoDB Rust driver:
Novedades en 3.5
La versión3.5 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Introduce la opción
socks5-proxyfuncionalidad, que permite conectar a la base de datos mediante un proxy SOCKS5. Puedes configurar esta funcionalidad usando las opciones de cadena de conexiónproxyHost,proxyPort,proxyUsernameyproxyPasswordo el campoClientOptions::socks5_proxy.Añade compatibilidad con cursores de lotes sin procesar. Estos cursores permiten iterar sobre lotes de documentos sin procesar devueltos por el servidor, en lugar de valores deserializados individuales. Para obtener más información sobre los cursores de lotes sin procesar, consulte Use la sección Raw agrupar Cursor de la guía Cursor y la raw_batch_cursor Documentación de la API.
Se desaprueba especificar la autenticación de AWS en el nombre de usuario y la contraseña de la cadena de conexión y en la propiedad
AWS_SESSION_TOKEN. Esta funcionalidad se eliminará en la siguiente versión principal del driver. Para obtener más información sobre la autenticación de AWS, consulta la sección MONGODB-AWS Mechanism de la guía de autenticación.La opción está obsoleta. Utilice la opción en su
socketTimeoutMSwTimeoutMSlugar. Para obtener más información sobre las opciones de conexión disponibles, consulte la guía de opciones de conexión.
Para obtener más información sobre esta versión, consulte las 3.5 Notas de la versión v en GitHub.
Novedades en 3.4
La versión3.4 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Introducción a la creación de queries de búsqueda de MongoDB (MongoDB Search) seguros en cuanto a tipos a través del módulo
atlas_search. Esta funcionalidad ofrece validación en tiempo de compilación, soporte IDE y un patrón de creación fluida para la construcción de queries de búsqueda en MongoDB Search. Para aprender más sobre queries de búsqueda seguros en cuanto a tipo en MongoDB, consulta la sección Construcción de queries seguros en cuanto a tipo de la guía Ejecutar un MongoDB Search Query.Agrega compatibilidad para rastrear comandos de base de datos y operaciones del controlador para OpenTelemetry.
Añade compatibilidad con índices de texto para el cifrado consultable automático y explícito. Para obtener más información sobre el cifrado consultable, consulte la sección Cifrado consultable del manual de MongoDB Server.
Para obtener más información sobre esta versión, consulte las 3.4 Notas de la versión v en GitHub.
Novedades en 3.3
La versión3.3 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Importante: Esta nueva versión descarta la compatibilidad con la versión 4.0 de MongoDB Server y eleva la versión mínima soportada a 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.
Se introduce la compatibilidad con la versión 3.0 del paquete BSON. De forma predeterminada, el controlador usa la versión 2.15 para compatibilidad con versiones anteriores. Para usar la versión 3.0, agregue la función
bson-3a la listafeaturesdel paquete del controlador en el archivoCargo.tomlde su proyecto. BSON 3.0 actualiza varias API de forma incompatible con versiones anteriores. Los siguientes cambios podrían requerir actualizaciones en su aplicación:Introduce un tipo unificado
bson::error::Errorque consolida la gestión de errores en toda la caja con campos consistentes y una información de errores detallada.Agrega los tipos
&CStryCStringpara claves BSON y expresiones regulares para evitar problemas de bytes nulos que anteriormente provocaban pánicos. El siguiente ejemplo muestra cómo actualizar su código utilizando los tipos&CStryCString:let mut computed_key = "foo".to_owned(); computed_key.push_str("bar"); // Non-static values need to be checked at runtime let computed_key = CString::try_from(computed_key)?; let doc_buf = rawdoc! { // String literal keys in `rawdoc!` are implicitly checked at compile-time. "hello": "world", computed_key: 42, "regex": Regex { // `&CStr` implements many common traits like `ToOwned` pattern: cstr!("needle").to_owned(), options: cstr!("").to_owned(), } }; // `append` keys must now be a `&CStr` or `CString`. doc_buf.append(cstr!("a key"), "a value"); Proporciona todas las conversiones entre tipos sin procesar y sus tipos de referencia a través de los rasgos de la biblioteca estándar.
Hace que
serdesea una funcionalidad opcional que está deshabilitada por defecto. Las funciones de serialización y deserialización ahora tienen prefijosserialize_toodeserialize_frompara mayor claridad.Simplifica la decodificación con pérdida UTF-8 con el tipo contenedor
Utf8Lossyy los nuevos métodos de conversión.Actualiza
serdelas funciones auxiliares para trabajar con laserde_asanotación delserde_withcaja para realizar conversiones de tipo más flexibles. Para más información, vea Modelado de datos y serialización.Para obtener instrucciones detalladas sobre cómo migrar de BSON 2.x a BSON 3.0, consulta la Guía de migración de 2.x a 3.0 en GitHub.
Para obtener más información sobre esta versión, consulte las 3.3 Notas de la versión v en GitHub.
Novedades en 3.2
La versión3.2 del driver de Rust incluye las siguientes 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.
Aumenta la versión mínima de Rust compatible a 1.71.1. Para obtener más información sobre la compatibilidad de drivers, consulta la página de Compatibilidad.
Marca la funcionalidad de encriptación en uso como estable con las mismas garantías de compatibilidad con versiones anteriores que el driver. El funcionalidad flag se llama
in-use-encryption. Este es un cambio de política y la API no cambia respecto a la versión anterior.Permite nombres de host SRV con menos de tres partes.
Le permite proporcionar una opción de clasificación al realizar operaciones de actualización.
Agrega soporte de autenticación OIDC para entornos Kubernetes.
Para usar OIDC para autenticarse desde un entorno de Kubernetes, configure la opción de conexión
authMechanismPropertiescomoENVIRONMENT:k8sen su cadena de conexión. Puede usar esta función al conectarse a un entorno que se ejecute en Elastic Kubernetes Service de Amazon, Google Kubernetes Engine o Azure Kubernetes Service.
Para obtener más información sobre esta versión, consulte las 3.2 Notas de la versión v en GitHub.
Novedades en 3.1
La versión3.1 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Añade compatibilidad con más de un proveedor de Servicios de Administración de Claves (KMS) del mismo tipo. Para obtener más información sobre los proveedores de KMS, consulte Cifrado Consultable en el manual de MongoDB Server.
Se añade compatibilidad con v2 del protocolo de rango de cifrado consultable. Los índices de rango para cifrado consultable ahora están disponibles con disponibilidad general.
Agrega el campo
typeal tipoSearchIndexModelpara permitir la creación programática de índices de MongoDB Search y MongoDB Vector Search. Para aprender más, consulta la guía MongoDB Search e Índices Vectoriales.Implementa el algoritmo Happy Eyeballs para gestionar conexiones TCP. Para más información sobre este algoritmo, consulta la documentación de Rust del paquete happy_eyeballs.
El driver publica un evento
TopologyDescriptionChangedEventcuando se cierra una topología.
Para obtener más información sobre esta versión, consulte las 3.1 Notas de la versión v en GitHub.
Novedades en 3.0.1
La versión v3.0.1 del controlador Rust incluye las siguientes características, mejoras y correcciones:
Corrige un problema en el cual las agregaciones no se compilaban cuando se ejecutaban dentro de sesiones explícitas y también se implementaban tipos personalizados.
Corrige un problema en el que el método
Collection::watch()no utilizaba el parámetro de tipo de la instanciaCollectionen la que se ejecutaba.
Para obtener más información sobre esta versión, consulte las notas de versión v3.0.1 en GitHub.
Novedades en 3.0
La versión3.0 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Implementa una API fluida, que introduce los siguientes cambios de sintaxis para pasar opciones e iniciar sesiones:
Para establecer opciones de método asíncrono, encadena los métodos del generador de opciones directamente a la llamada al método en lugar de pasar un parámetro de estructura de opciones.
Para establecer opciones del método sincrónico, encadene métodos de creación de opciones a la llamada del método y, luego, llame al método
run().Si necesitas construir una estructura de opciones separada, encadena el método
with_options()a la llamada del método y pasa tu estructura de opciones como parámetro.Para iniciar una sesión, encadena el método
session()a la llamada del método en lugar de usar un método separado que tenga un sufijo_with_session.
Añade compatibilidad con operaciones de escritura masiva. Para obtener más información sobre estas operaciones, consulte la guía de operaciones masivas.
Introduce el tipo
EventHandlerpara reducir la cantidad de código boilerplate necesaria para la supervisión de eventos. Para ejemplos que utilizan el tipoEventHandler, consulta las guías en la sección supervisión.Se remueve la compatibilidad con el tiempo de ejecución asíncrono
async-std. Para obtener más información sobre este cambio, consulte la sección Configurar el entorno de ejecución asíncrono de la guía de las API asíncronas y síncronas.Requiere el uso de la función
compatsi una aplicación de controlador de Rust se compila con el indicador de línea de comandosno-default-features. Las funcionesrustlsydns-resolutionahora son opcionales.Se remueve el soporte para las funcionalidades del driver
bson-*. Puede seleccionar estas funcionalidades incluyendobsoncomo una dependencia directa en su aplicación.Se elimina el soporte para las constantes de nivel de confirmación de lectura y nivel de confirmación de escritura (write concern). En su lugar, utiliza métodos asistentes para establecer los valores de
ReadConcernyWriteConcern.Agrega restricciones
Send + Syncal tipoCollection<T>.Elimina el campo
ClientOptions::compressorsi no hay funciones de compresor habilitadas.Cambia el tipo de los campos
ReadPreferenceOptions. Estos campos ahora son de tipoOption<ReadPreferenceOptions>.Elimina la opción
CollectionOptions::human_readable_serialization. En su lugar, utiliza el tipobson::HumanReadablecontenedor para serializar los datos de usuario en un formato legible para las personas.Añade soporte para la conversión de valores mediante el rasgo
Intopara todos los generadores de structs de opción.Cambia el nombre del campo
comment_bsonacommentpara las estructurasAggregateOptions,FindOptionsyFindOneOptions.
Para obtener más información sobre esta versión, consulta la <a3.0 class=\" \" target=\" \" href=\" \"> Guía de migración v <svg class=\" \" height=\" \" width=\" \" role=\" \" aria-hidden=\" \" alt=\" \" viewbox=\" \"><path d=\" \" fill=\" \"> <path d=\" \" fill=\" \"> en GitHub.
Novedades en la versión 2.8
La versión 2.8 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Añade métodos de gestión de índices de MongoDB Search. Para obtener más información sobre estos métodos, consulte la guía de índices de MongoDB Search y Vector Search.
Mejora la conectividad de red y la fiabilidad de las operaciones implementando los siguientes comportamientos:
Realiza reintentos en un mayor rango de tipos de errores que el controlador encuentre.
Evita reintentos para instancias de
mongosque experimentan problemas de conectividad de red.
Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v2.8.0 en GitHub.
Novedades de la versión 2.7
La versión 2.7 del driver Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Agrega la opción
human_readable_serializationa la estructuraCollectionOptions. Esta opción indica al controlador que serialice los valores pasados a los métodos CRUD en un formato legible para los humanos. El valor por defecto de esta opción esfalse.Advertencia
Si configuras el valor de
human_readable_serializationentrue, tus operaciones de inserción podrían ejecutarse más lentamente.Añade el
run_cursor_command()método para ejecutar un comando de base de datos y obtener la respuesta comoCursortipo. Para obtener más información,consulte la guía "Ejecutar un comando".Agrega el registro de eventos SDAM cuando utiliza el indicador de función
tracing-unstable.Agrega las siguientes configuraciones para
Clienty la gestión de la conexión:max_connecting: una opción que puedes configurar en una estructuraClientOptionspara especificar cuántas conexiones puedes establecer en paralelo. Para obtener más información sobre esta opción, consulta pool de conexiones en la guía Consideraciones de rendimiento.Client::warm_connection_pool(): un método que permite crear nuevas conexiones en el grupo de conexiones para proporcionar un rendimiento más predecible. Al usar este método, el controlador intenta crear conexiones hasta el número especificado en la configuraciónmin_pool_size.Client::shutdown(): un método que puedes usar para detener las tareas en segundo plano y esperar a que los controladores se descarten. Este método puede ser útil si utiliza controladores de eventos para hacer referencia a recursos externos, ya que estos controladores pueden utilizarse en tareas incluso después de que elClientesté cerrado.
Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v2.7.0 en GitHub.
Novedades de la versión 2.6
La versión 2.6 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:
Admite roles de AWS Identity and Access Management (IAM) para cuentas de servicio, tales como cuentas de Elastic Kubernetes Service (EKS).
Admite cuentas de servicio adjuntas a GCP cuando se utiliza el Sistema de administración de claves en la nube (KMS).
Permite obtener credenciales CSFLE de Azure KMS on-demand.
Implementa el rasgo
FromStrpara la estructuraNamespace. Este cambio te permite analizar una string que incluye un nombre de base de datos y colección, como"testdb.testcollection"en una instancia deNamespace.Incluye el
server_iden una estructuraConnectionInfocomo un tipoi64.Remueve la mayoría de las restricciones de tipo en los valores referenciados por un
Cursor.Actualiza la versión
libmongocrypten las dependencias del controlador para utilizar la función de cifrado consultable con consultas de igualdad.
Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v2.6.0 en GitHub.