Docs Menu
Docs Home
/ /

Novedades

Obtenga información sobre las nuevas características, mejoras y correcciones introducidas en las siguientes versiones del controlador MongoDB Rust:

  • 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ón v3.5 del controlador Rust incluye las siguientes características, mejoras y correcciones:

  • Introduce la opción socks5-proxy Función que le permite conectarse a su base de datos mediante un proxy SOCKS5. Puede configurar esta función mediante las opciones de cadena de conexión proxyHost, proxyPort, proxyUsername y proxyPassword o el campo ClientOptions::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 raw_batch_cursor. Documentación de la API.

  • Se desaprueba la especificación de la autenticación de AWS en el nombre de usuario y la contraseña de la cadena de conexión y la propiedad AWS_SESSION_TOKEN. Esta funcionalidad se eliminará en la próxima versión principal del controlador. Para obtener más información sobre la autenticación de AWS, consulte Sección delmecanismo MONGODB-AWS de la guía de autenticación.

  • La opción está obsoleta. Utilice la opción en su socketTimeoutMS wTimeoutMS lugar. 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.

La versión v3.4 del controlador Rust incluye las siguientes características, 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 soporte para rastrear comandos de base de datos y operaciones de 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.

La versión v3.3 del controlador Rust incluye las siguientes características, mejoras y correcciones:

  • Importante: Esta versión elimina la compatibilidad con la versión de MongoDB Server 4.0 y aumenta 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.

  • 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-3 a la lista features del paquete del controlador en el archivo Cargo.toml de 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 bson::error::Error unificado que consolida el manejo de errores en toda la caja con campos consistentes e información de errores granular.

    • Añade los tipos &CStr y CString a las claves BSON y expresiones regulares para evitar problemas de bytes nulos que anteriormente causaban pánicos. El siguiente ejemplo muestra cómo actualizar el código usando 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 los rasgos de la biblioteca estándar.

    • Convierte serde en una función 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 de UTF-8 con el tipo de contenedor Utf8Lossy y nuevos métodos de conversión.

    • Se actualizan serde las funciones auxiliares para que funcionen con la serde_as anotación del serde_with paquete y así lograr conversiones de tipos más flexibles. Para más información, consulte Modelado y serialización de datos.

    • Para obtener instrucciones detalladas sobre cómo migrar de BSON.x 2 a BSON,3.0 consulte la guía Migración 2 de.x 3.0 a en GitHub.

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

La versión v3.2 del controlador Rust incluye las siguientes características, mejoras y correcciones:

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

  • Aumenta la versión mínima compatible de Rust 1.71.1 a. Para obtener más información sobre la compatibilidad de controladores, consulte la página de compatibilidad.

  • Marca la función de cifrado en uso como estable, con las mismas garantías de retrocompatibilidad que el controlador. El indicador de la función se llama in-use-encryption. Este es un cambio de política y la API no ha cambiado con 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 authMechanismProperties como ENVIRONMENT:k8s en 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.

La versión v3.1 del controlador Rust incluye las siguientes características, 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.

  • Añade el type campo al SearchIndexModel tipo para permitir la creación programática de índices de búsqueda y búsqueda vectorial de MongoDB. Para obtener más información, consulte la guía de índices de búsqueda y búsqueda vectorial de MongoDB.

  • 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 controlador publica un evento TopologyDescriptionChangedEvent cuando 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.

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 cual el método Collection::watch() no usaba 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ón v3.0 del controlador Rust incluye las siguientes características, 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étodos asincrónicos, encadene los métodos del generador de opciones directamente a la llamada del método en lugar de pasar un parámetro de estructura de opciones.

    • Para establecer opciones de método sincrónico, encadene los métodos del generador de opciones a la llamada del método y luego llame al método run().

    • Si debe construir una estructura de opciones separada, encadene el método with_options() a la llamada al método y pase su estructura de opciones como parámetro.

    • Para iniciar una sesión, encadene el método session() a la llamada del método en lugar de utilizar 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.

  • Se introduce el EventHandler tipo para reducir la cantidad de código repetitivo necesario para la monitorización de eventos. Para ver ejemplos que utilizan el EventHandler tipo, consulte las guías de la sección Monitorización.

  • Se elimina la compatibilidad con el async-std entorno de ejecución asíncrono. 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 API asíncronas y síncronas.

  • Requiere el uso de la función compat si una aplicación de controlador de Rust se compila con el indicador de línea de comandos no-default-features. Las funciones rustls y dns-resolution 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 la compatibilidad con las constantes de lectura y escritura. En su lugar, se utilizan métodos auxiliares para establecer los valores ReadConcern y WriteConcern.

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

  • Elimina el campo ClientOptions::compressor si no hay funciones de compresor habilitadas.

  • Cambia el tipo de los campos ReadPreferenceOptions. Estos campos ahora son de tipo Option<ReadPreferenceOptions>.

  • Elimina la opción CollectionOptions::human_readable_serialization. En su lugar, utiliza el tipo contenedor bson::HumanReadable para serializar los datos del usuario en formato legible.

  • Agrega soporte para la conversión de valores a través del rasgo Into para todos los generadores de estructuras de opciones.

  • Cambia el nombre del campo comment_bson a comment para las estructuras AggregateOptions, FindOptions y FindOneOptions.

Para obtener más información sobre esta versión, consulte la Guía de migración v3.0 en GitHub.

La versión v2.8 del controlador Rust incluye las siguientes características, 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 una gama más amplia de tipos de errores que encuentra el controlador.

    • 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 v2.7 del controlador Rust incluye las siguientes características, mejoras y correcciones:

  • Añade 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. El valor predeterminado de esta opción es false.

    Advertencia

    Si establece el valor de human_readable_serialization en true, sus 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 como Cursor tipo. 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 Client y la gestión de conexiones:

    • max_connecting: una opción que se puede configurar en una ClientOptions estructura para especificar cuántas conexiones se pueden establecer en paralelo. Para obtener más información sobre esta opción, consulte "Grupo 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ón min_pool_size.

    • Client::shutdown(): un método que permite detener tareas en segundo plano y esperar a que se cierren los controladores. Este método puede ser útil si se utilizan controladores de eventos para referenciar recursos externos, ya que estos controladores podrían utilizarse en tareas incluso después de cerrar Client.

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 v2.6 del controlador Rust incluye las siguientes características, mejoras y correcciones:

  • Admite roles de AWS Identity and Access Management (IAM) para cuentas de servicio, 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).

  • Admite la obtención de credenciales CSFLE a pedido desde Azure KMS.

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

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

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

  • Actualiza la versión libmongocrypt en 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.

Volver

Referencia rápida

En esta página