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

Notas de versión

Aprende sobre las nuevas funcionalidades, mejoras y correcciones presentadas en las siguientes versiones del MongoDB Rust driver:

  • Versión 3.6

  • Versión 3.5

  • Versión 3.4

  • Versión 3.3

  • Versión 3.2

  • Versión 3.1

  • Versión 3.0.1

  • Versión 3.0

  • Versión 2.8

  • Versión 2.7

  • Versión 2.6

La versión3.6 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:

  • Agrega soporte para las funciones de administración inteligente de carga de trabajo (IWM) y limitación de velocidad de conexión de entrada de MongoDB. Puede utilizar el enableOverloadRetargeting y maxAdaptiveRetries opciones para mejorar el comportamiento cuando se conecta a servidores sobrecargados. Para obtener más información sobre estas opciones, consulte la Guía Especificar opciones de conexión.

  • Mejora el rendimiento de descarga e iteración del cursor en GridFS.

Para obtener más información sobre esta versión, consulte las Notas de la versión v3.6 en GitHub.

La versión3.5 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:

  • Introduce la funcionalidad opcional socks5-proxy, que te permite conectarte a tu base de datos utilizando un proxy SOCKS5. Puedes configurar esta funcionalidad utilizando las opciones de cadena de conexión proxyHost, proxyPort, proxyUsername y proxyPassword, o el campo ClientOptions::socks5_proxy.

  • Agrega soporte para cursores agrupados sin procesar. Los cursores de lotes sin procesar 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 por lotes sin procesar, consulta la sección Utilizar el cursor por lotes sin procesar de la guía de cursores y la documentación de la API raw_batch_cursor.

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

  • Se deja obsoleta la opción 'socketTimeoutMS'. Utiliza la opción wTimeoutMS en su lugar. Para obtener más información sobre las opciones de conexión disponibles, consulte la guía Opciones de conexión.

Para aprender más sobre esta versión, consulta las Notas de la versión v3.5 en GitHub.

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.

  • Agrega soporte para índices de texto para el cifrado automatizado y explícito Queryable Encryption. Para obtener más información sobre Queryable Encryption, consulta la sección de Queryable Encryption del manual del MongoDB Server.

Para aprender más sobre esta versión, consulta las Notas de la versión v3.4 en GitHub.

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.

  • Presenta soporte para la versión 3.0 de la caja BSON. Por defecto, el controlador utiliza la versión 2.15 para compatibilidad con versiones anteriores. Para utilizar la versión 3.0, agrega la funcionalidad bson-3 a la lista features del driver crate en el Cargo.toml de tu proyecto. BSON 3.0 actualiza varias API de maneras incompatibles con versiones anteriores. Los siguientes cambios podrían requerir actualizaciones en su aplicación:

    • Introduce un tipo unificado bson::error::Error que consolida la gestión de errores en toda la caja con campos consistentes y una información de errores detallada.

    • Agrega los tipos &CStr y CString para 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 &CStr y CString:

      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 rasgos de la librería estándar.

    • Hace que serde sea una funcionalidad opcional que está deshabilitada por defecto. Las funciones de serialización y deserialización ahora tienen prefijos serialize_to o deserialize_from para mayor claridad.

    • Simplifica la decodificación con pérdida UTF-8 con el tipo contenedor Utf8Lossy y los nuevos métodos de conversión.

    • Actualiza serde las funciones auxiliares para trabajar con la serde_as anotación del serde_with caja 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 aprender más sobre esta versión, consulta las Notas de la versión v3.3 en GitHub.

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.

  • Te permite proporcionar una opción de ordenación al realizar operaciones de actualización.

  • Agrega soporte de autenticación OIDC para entornos de Kubernetes.

    Para usar OIDC para autenticar desde un entorno Kubernetes, establezca la opción de conexión authMechanismProperties en ENVIRONMENT:k8s en su cadena de conexión. Puedes utilizar esta funcionalidad al conectarte a un entorno que ejecute en Amazon Elastic Kubernetes Service, Google Kubernetes motor o Azure Kubernetes Service.

Para aprender más sobre esta versión, consulta las Notas de la versión v3.2 en GitHub.

La versión3.1 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:

  • Agrega soporte para más de un proveedor del mismo tipo de Key Management Service (KMS). Para aprender más sobre los proveedores de KMS, consulta la sección Queryable Encryption en el manual de MongoDB Server.

  • Añade soporte para la versión v2 del protocolo de rango de Queryable Encryption. Los índices de rango para Queryable Encryption ahora son de disponibilidad general (GA).

  • Agrega el campo type al tipo SearchIndexModel para 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 obtener más información sobre este algoritmo, consulte la documentación de Rust para el crate happy_eyeballs.

  • El driver publica un evento TopologyDescriptionChangedEvent cuando se cierra una topología.

Para aprender más sobre esta versión, consulta las Notas de la versión v3.1 en GitHub.

La versión v3.0.1 del driver Rust incluye las siguientes funcionalidades, mejoras y correcciones:

  • Corrige un problema en el que las agregaciones no se compilaban cuando se ejecutaban dentro de sesiones explícitas y también implementaba tipos personalizados.

  • Corrige un problema en el que el método Collection::watch() no utilizaba el parámetro de tipo de la instancia Collection en 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.

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 soporte para operaciones de guardar masiva. Para obtener más información sobre estas operaciones, consulta la guía de Operaciones en Lote.

  • Introduce el tipo EventHandler para reducir la cantidad de código boilerplate necesaria para la supervisión de eventos. Para ejemplos que utilizan el tipo EventHandler, 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 una compat funcionalidad si una aplicación driver de Rust se compila con el indicador de línea de comandos no-default-features. Las rustls y dns-resolution funcionalidades ahora son opcionales.

  • Se remueve el soporte para las funcionalidades del driver bson-*. Puede seleccionar estas funcionalidades incluyendo bson como 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 ReadConcern y WriteConcern.

  • Agrega Send + Sync restricciones al tipo Collection<T>.

  • Se elimina el campo ClientOptions::compressor si ninguna función de compresor está habilitada.

  • Cambia el tipo de campos ReadPreferenceOptions. Estos campos ahora tienen un tipo Option<ReadPreferenceOptions>.

  • Elimina la opción CollectionOptions::human_readable_serialization. En su lugar, utiliza el tipo bson::HumanReadable contenedor 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 Into para todos los generadores de structs de opción.

  • Renombra el campo comment_bson a comment para las estructuras AggregateOptions, FindOptions y FindOneOptions.

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.

La versión 2.8 del driver de Rust incluye las siguientes funcionalidades, mejoras y correcciones:

  • Agrega los métodos de gestión de índices de MongoDB MongoDB Search. Para obtener más información sobre estos métodos, consulta la guía Í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 mongos que 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.

La versión 2.7 del driver Rust incluye las siguientes funcionalidades, mejoras y correcciones:

  • Agrega la opción human_readable_serialization a la estructura CollectionOptions. 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 es false.

    Advertencia

    Si configuras el valor de human_readable_serialization en true, tus operaciones de inserción podrían ejecutarse más lentamente.

  • Añade el método run_cursor_command() para ejecutar un comando de base de datos y recuperar la respuesta como un tipo Cursor. Para obtener más información, consulta la guía Ejecutar un comando.

  • Agrega el registro de eventos SDAM cuando se usa la bandera de funcionalidad tracing-unstable.

  • Agrega las siguientes configuraciones para Client y la gestión de la conexión:

    • max_connectinguna opción que puedes configurar en una estructura ClientOptions para especificar cuántas conexiones puedes establecer en paralelo. Para obtener más información sobre esta opción, consulta Información general en la guía de Consideraciones de rendimiento.

    • Client::warm_connection_pool(): un método que puedes utilizar para crear nuevas conexiones en el pool de conexiones y así proporcionar un rendimiento más predecible. Cuando usas este método, el controlador intenta crear conexiones hasta el número especificado en el ajuste min_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 el Client esté cerrado.

Para obtener más información sobre esta versión, vea los Aspectos destacados de la versión v2.7.0 en GitHub.

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 al utilizar el Sistema de gestión de Claves en la nube (KMS).

  • Permite obtener credenciales CSFLE de Azure KMS on-demand.

  • Implementa el rasgo FromStr para la estructura Namespace. Este cambio te permite analizar una string que incluye un nombre de base de datos y colección, como "testdb.testcollection" en una instancia de Namespace.

  • Incluye los server_id en una estructura ConnectionInfo como un tipo i64.

  • Remueve la mayoría de las restricciones de tipo en los valores referenciados por un Cursor.

  • Actualiza la versión libmongocrypt en las dependencias del driver para utilizar la funcionalidad de Queryable Encryption con queries 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.

Volver

Integraciones de terceros

En esta página