Overview
PyMongo proporciona opciones de conexión para comprimir mensajes, lo que reduce la cantidad de datos que pasan por la red entre MongoDB y su aplicación.
Especificar algoritmos de compresión
PyMongo admite los siguientes algoritmos de compresión:
Snappy: Esta opción requiere el paquete python-snappy.
Zlib: esta opción requiere el módulo zlib, incluido en la biblioteca estándar en Python1 v.5 y posteriores.
Zstandard: esta opción requiere el paquete zstandard.
Para habilitar la compresión para la conexión a su instancia de MongoDB, utilice el
compressors Opción de conexión y especifique los algoritmos de compresión que desea utilizar. Puede hacerlo de dos maneras:
Pase los algoritmos como argumento al constructor
MongoClient.Especifique los algoritmos en su 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 especifica un algoritmo de compresión, PyMongo no comprime el tráfico de red. Si especifica varios algoritmos de compresión, el controlador selecciona el primero de la lista compatible con su instancia de MongoDB.
Especifique el nivel de compresión zlib
Si especifica zlib como uno de sus algoritmos de compresión, también puede usar la opción zlibCompressionLevel para especificar un nivel de compresión. Esta opción acepta un valor entero entre -1 y 9:
-:1 (Predeterminado). zlib utiliza su nivel de compresión predeterminado
6(normalmente).0: Sin compresión.
1: Velocidad más rápida pero compresión más baja.
9: Mejor compresión pero 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)
Documentación de la API
Para obtener más información sobre cualquiera de los métodos o tipos analizados en esta guía, consulte la documentación de la API de MongoClient.