Compatibilidad de versiones
La siguiente tabla enumera la versión mínima de driver compatible y de MongoDB Server para cada algoritmo de compresión:
Añadir banderas de funcionalidades de compresión
Para usar un compresor, añade la bandera de característica relevante a la lista de funcionalidades de la dependencia mongodb en el archivo Cargo.toml del proyecto.
Seleccione la pestaña de su compresor preferido para ver cómo añadir el indicador de funcionalidad necesario a su dependencia mongodb:
[dependencies.mongodb]version = "3.10.0"features = ["snappy-compression"][dependencies.mongodb]version = "3.10.0"features = ["zlib-compression"][dependencies.mongodb]version = "3.10.0"features = ["zstd-compression"]Tip
Para especificar múltiples compresores, debes agregar la funcionalidad de activación para cada compresor a tu dependencia mongodb.
Habilitar la compresión de red
Puede habilitar la compresión en su instancia Client especificando los compresores de las siguientes maneras:
Agregar el parámetro
compressorsa su cadena de conexión. Para ver un ejemplo que permite la compresión de esta manera, consulta la sección Cadena de conexión.Configurar el campo
compressorsde una instanciaClientOptions. Después puedes pasar las opciones al métodowith_options()al instanciar unClient. Para ver un ejemplo que habilite la compresión de esta manera, consulta la sección ClientOptions.
Cadena de conexión
Para habilitar la compresión mediante el uso de una cadena de conexión, especifique el parámetro compressors. Puede especificar uno o más de los siguientes valores para el parámetro compressors:
"snappy"para compresión Snappy"zlib"para la compresión Zlib"zstd"para la compresión Zstandard
El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como los compresores para una conexión:
let uri = "mongodb+srv://<db_username>:<db_password>@<cluster-url>/?compressors=snappy,zlib,zstd";let client = Client::with_uri_str(uri).await?;Para obtener más información sobre cómo configurar las opciones del cliente, consulta la guía sobre Especificar opciones de conexión.
ClientOptions
Para activar la compresión en tu instancia ClientOptions, configura el campo compressors y luego pasa las opciones al crear un cliente.
El campo compressors toma un valor del tipo Vec<Compressor>. El tipo Compressor tiene los siguientes valores posibles:
Compressor::SnappyCompressor::Zstd { level: <integer> }Compressor::Zlib { level: <integer> }
Para los compresores que tienen un campo level, ajuste el valor a None para indicar el nivel por defecto. La siguiente tabla describe los niveles de compresión por defecto y aceptados para Zlib y Zstandard:
Compresor | Nivel por defecto | Niveles aceptados |
|---|---|---|
Zlib |
| Números enteros de |
Zstandard |
| Números enteros de |
Un valor level más alto resulta en una mayor compresión, que es más lenta.
El siguiente ejemplo muestra cómo especificar Snappy, Zlib y Zstandard como los compresores para una conexión:
let uri = "<connection string>";let mut client_options = ClientOptions::parse(uri).await?;
let compressors = vec![ Compressor::Snappy, Compressor::Zstd { level: Some(1) }, Compressor::Zlib { level: None }];
client_options.compressors = Some(compressors);let client = Client::with_options(client_options)?;Información Adicional
Para más información sobre los conceptos de esta guía, consulta la siguiente documentación:
Opciones de compresión de cadena de conexión en el manual del servidor
Documentación de la API
Para obtener más información sobre cualquiera de los métodos o tipos mencionados en esta guía, consulta la siguiente documentación API: