Overview
Esta página contiene ejemplos de código que muestran cómo conectar la aplicación de Python a MongoDB con varias configuraciones.
Tip
Para obtener más información sobre las opciones de conexión de esta página, consulta el enlace proporcionado en cada sección.
Para utilizar un ejemplo de conexión de esta página, copie el ejemplo de código en el
Aplicación de ejemplo o su propia aplicación. Asegúrese de reemplazar todos los marcadores de posición en los ejemplos de código, como <hostname>, con los valores relevantes para su implementación de MongoDB.
Aplicación de muestra
Puede utilizar la siguiente aplicación de muestra para probar los ejemplos de código en esta página. Para usar la aplicación de muestra, siga los siguientes pasos:
Asegúrate de que tienes PyMongo instalado.
Copia el siguiente código y pégalo en un nuevo archivo
.py.Copia un ejemplo de código de esta página y pégalo en las líneas especificadas del archivo.
Seleccione el Synchronous o pestaña Asynchronous para ver el código correspondiente:
1 from pymongo import MongoClient 2 3 try: 4 # start example code here 5 6 # end example code here 7 8 client.admin.command("ping") 9 print("Connected successfully") 10 11 # other application code 12 13 client.close() 14 15 except Exception as e: 16 raise Exception( 17 "The following error occurred: ", e)
1 import asyncio 2 from pymongo import AsyncMongoClient 3 4 async def main(): 5 try: 6 # start example code here 7 8 # end example code here 9 10 await client.admin.command("ping") 11 print("Connected successfully") 12 13 # other application code 14 15 await client.close() 16 17 except Exception as e: 18 raise Exception( 19 "The following error occurred: ", e) 20 21 asyncio.run(main())
Conexión
Las siguientes secciones describen cómo conectarse a diferentes destinos, como una instancia local de MongoDB o una instancia alojada en la nube en Atlas.
Implementación local
El siguiente código muestra cómo usar la cadena de conexión para conectarse a una implementación local de MongoDB. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
uri = "mongodb://localhost:27017/" client = MongoClient(uri)
uri = "mongodb://localhost:27017/" client = AsyncMongoClient(uri)
Atlas
El siguiente código muestra la cadena de conexión para conectarse a una implementación alojada en Atlas. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
uri = "<Atlas connection string>" client = MongoClient(uri, server_api=pymongo.server_api.ServerApi( version="1", strict=True, deprecation_errors=True))
uri = "<Atlas connection string>" client = AsyncMongoClient(uri, server_api=pymongo.server_api.ServerApi( version="1", strict=True, deprecation_errors=True))
Set de réplicas
El siguiente código muestra la cadena de conexión para conectarse a un Set de réplicas. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>" client = MongoClient(uri)
uri = "mongodb://<replica set member>:<port>/?replicaSet=<replica set name>" client = AsyncMongoClient(uri)
Compresión de la red
Las siguientes secciones describen cómo conectarse a MongoDB especificando los algoritmos de compresión de red.
Algoritmos de compresión
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)
Para obtener más información sobre cómo especificar algoritmos de compresión, consulte Especifique los algoritmos de compresión en la guía de compresión de red.
Nivel de compresión de zlib
Las siguientes pestañas demuestran cómo especificar un nivel de compresión para el compresor zlib:
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "zlib", zlibCompressionLevel=<zlib compression level>)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=zlib" "zlibCompressionLevel=<zlib compression level>") client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", compressors = "zlib", zlibCompressionLevel=<zlib compression level>)
uri = ("mongodb://<db_username>:<db_password>@<hostname>:<port>/?" "compressors=zlib" "zlibCompressionLevel=<zlib compression level>") client = pymongo.AsyncMongoClient(uri)
Para obtener más información sobre cómo configurar el nivel de compresión zlib, consulta Especificar algoritmos de compresión en la guía de Compresión de red.
Selección de servidores
El siguiente código muestra una cadena de conexión que especifica una función de selección de servidor. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", server_selector=<selector function>)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname>:<port>", server_selector=<selector function>)
Para obtener más información sobre cómo personalizar la selección de servidores, consulta Personalizar la selección de servidores.
Stable API
El siguiente código muestra cómo especificar la configuración de Stable API para una conexión. Selecciona la pestaña Synchronous o Asynchronous para ver el código correspondiente:
from pymongo.server_api import ServerApi client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("<Stable API version>"))
from pymongo.server_api import ServerApi client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname:<port>", server_api=ServerApi("<Stable API version>"))
Para obtener más información sobre la Stable API, consulta Stable API.
Limite el tiempo de ejecución del servidor
Bloque de tiempo de espera
El siguiente código muestra cómo establecer un tiempo de espera del lado del cliente utilizando el método timeout():
with pymongo.timeout(<timeout length>): # perform operations here
Para aprender más sobre los tiempos de espera del lado del cliente, consulte Limitar el Tiempo de Ejecución del Servidor.
Opción de conexión timeoutMS
Las siguientes pestañas demuestran cómo establecer un tiempo de espera del lado del cliente utilizando la opción de conexión timeoutMS:
client = pymongo.MongoClient("mongodb://<db_username>:<db_password>@<hostname@:<port>", timeoutMS=<timeout length>)
uri = "mongodb://<db_username>:<db_password>@<hostname:<port>/?timeoutMS=<timeout length>" client = pymongo.MongoClient(uri)
client = pymongo.AsyncMongoClient("mongodb://<db_username>:<db_password>@<hostname@:<port>", timeoutMS=<timeout length>)
uri = "mongodb://<db_username>:<db_password>@<hostname:<port>/?timeoutMS=<timeout length>" client = pymongo.AsyncMongoClient(uri)
Para aprender más sobre los tiempos de espera del lado del cliente, consulte Limitar el Tiempo de Ejecución del Servidor.