Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Comprimir el tráfico de la red

PyMongo ofrece opciones de conexión para comprimir mensajes, lo que reduce la cantidad de datos transferidos a través de la red entre MongoDB y tu aplicación.

PyMongo es compatible con los siguientes algoritmos de compresión:

  1. Snappy: Esta opción requiere el paquete python-snappy.

  2. Zlib: Esta opción requiere el módulo zlib, incluido en la librería estándar en Python v1.5 y posteriormente.

  3. Zstandard: Esta opción requiere el paquete zstandard.

Para habilitar la compresión en la conexión a su instancia de MongoDB, utilice la opción de conexión compressors y especifique los algoritmos de compresión que desea utilizar. Puedes hacerlo de dos maneras:

  • Pase los algoritmos como argumento al constructor MongoClient.

  • Especificar los algoritmos en tu cadena de conexión.

El siguiente ejemplo de código muestra ambas opciones:

Las siguientes pestañas demuestran cómo especificar todos los compresores disponibles al conectarse a MongoDB:

client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>",
compressors = "snappy,zstd,zlib")
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"compressors=snappy,zstd,zlib")
client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>",
compressors = "snappy,zstd,zlib")
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"compressors=snappy,zstd,zlib")
client = pymongo.AsyncMongoClient(uri)

Si no se especifica un algoritmo de compresión, PyMongo no comprime el tráfico de red. Si especificas varios algoritmos de compresión, el driver seleccionará el primero en la lista que sea compatible con tu instancia de MongoDB.

Si especificas zlib como uno de tus algoritmos de compresión, también puedes usar la opción zlibCompressionLevel para especificar un nivel de compresión. Esta opción acepta un valor entero entre -1 y 9:

  • -1: (por defecto). zlib utiliza su nivel de compresión por defecto (normalmente 6).

  • 0: Sin compresión.

  • 1: La velocidad más rápida, pero la compresión más baja.

  • 9: Mejor compresión pero la velocidad más lenta.

El siguiente ejemplo de código especifica el algoritmo de compresión zlib y un valor de 1 para la opción zlibCompressionLevel:

client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>",
compressors = "zlib",
zlibCompressionLevel=1)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"compressors=zlib"
"zlibCompressionLevel=1")
client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>",
compressors = "zlib",
zlibCompressionLevel=1)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?"
"compressors=zlib"
"zlibCompressionLevel=1")
client = pymongo.AsyncMongoClient(uri)

Para aprender más sobre cualquiera de los métodos o tipos discutidos en esta guía, consulta la documentación MongoClient API.