Página inicial do Docs → Desenvolver aplicações → Drivers Python → PyMongo
Escolha um destino de conexão
Nesta página
Visão geral
Neste guia, você pode aprender como usar uma string de conexão e objeto MongoClient
para conectar a diferentes tipos de sistemas MongoDB.
Atlas
Para se conectar a uma MongoDB deployment no Atlas, inclua os seguintes elementos em sua connection string:
URL do seu cluster Atlas
Nome de usuário do MongoDB
Senha do MongoDB
Em seguida, passe sua connection string para o construtor MongoClient
.
Dica
Siga oguia de conexão do driver do Atlas para recuperar sua connection string.
Ao se conectar ao Atlas, recomendamos usar a opção de cliente Stable API para evitar alterações significativas quando o Atlas atualizar para uma nova versão do MongoDB Server. Para saber mais sobre o recurso de Stable API , consulte a página deStable API .
O código a seguir mostra como usar o PyMongo para se conectar a um cluster Atlas. O código também usa a opção server_api
para especificar uma versão de stable API .
from pymongo import MongoClient from pymongo.server_api import ServerApi # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Create a MongoClient with a MongoClientOptions object to set the Stable API version client = MongoClient(uri, server_api=ServerApi( version='1', strict=True, deprecation_errors=True)) try: # Connect the client to the server (optional starting in v4.7) client.connect() # Send a ping to confirm a successful connection client.admin.command({'ping': 1}) print("Pinged your deployment. You successfully connected to MongoDB!") finally: # Ensures that the client will close when you finish/error client.close()
Implantações locais
Para se conectar a uma implantação local do MongoDB, use localhost
como nome do host. Por padrão, o processo mongod
é executado na porta 27017, embora você possa personalizar isso para seu sistema.
O seguinte código mostra como usar o PyMongo para se conectar a um MongoDB deployment local:
from pymongo import MongoClient uri = "mongodb://localhost:27017/" client = MongoClient(uri)
Conjuntos de réplicas
Para se conectar a um conjunto de réplicas, especifique o nome de host (ou endereço IP) e o número de porta dos membros do conjunto de réplicas em sua connection string.
Se você não conseguir fornecer uma lista completa de hosts no conjunto de réplicas, poderá especificar um ou mais hosts no conjunto de réplicas e instruir o PyMongo a executar a descoberta automática para encontrar os outros. Para instruir o driver a realizar a descoberta automática, execute uma das seguintes ações:
Especifique o nome do conjunto de réplica como o valor do parâmetro
replicaSet
.Especifique
false
como o valor do parâmetrodirectConnection
.Especifique mais de um host no conjunto de réplica.
No exemplo a seguir, o driver usa um URI de conexão de exemplo para se conectar ao conjunto de réplicas do MongoDB sampleRS
, que está sendo executado na porta 27017
de três hosts diferentes, incluindo host1
:
from pymongo import MongoClient uri = "mongodb://host1:27017/?replicaSet=sampleRS" client = MongoClient(uri)
Observação
O construtor MongoClient
não está bloqueando. Quando você se conecta a um conjunto de réplicas, o construtor retorna imediatamente enquanto o cliente usa threads em segundo plano para se conectar ao conjunto de réplicas.
Se você construir um MongoClient
e imprimir imediatamente a representação de string de seu atributo nodes
, a lista poderá estar vazia enquanto o cliente se conecta aos membros do conjunto de réplicas.
Inicialização
Para inicializar um conjunto de réplicas, você deve se conectar diretamente a um único membro. Para fazer isso, defina a opção de conexão directConnection
como True
. Você pode fazer isso de duas maneiras: passando um argumento para o construtor MongoClient
ou por meio de um parâmetro em sua connection string.
Solução de problemas
Servidor MongoDB relata versão X de fio, PyMongo requer Y
Se você tentar se conectar ao MongoDB Server v3.4 ou anterior, o PyMongo poderá gerar o seguinte erro:
pymongo.errors.ConfigurationError: Server at localhost:27017 reports wire version 5, but this version of PyMongo requires at least 6 (MongoDB 3.6).
Isso ocorre quando a versão do driver é muito nova para o servidor ao qual está se conectando. Para resolver esse problema, atualize seu sistema do MongoDB para v3.6 ou posterior, ou faça downgrade para o PyMongo v3.x, que oferece suporte ao MongoDB Server v2.6 e posterior.
Reconexão automática
Uma exceção AutoReconnect
indica que ocorreu um failover . Isso significa que o PyMongo perdeu sua conexão com o membro primary original do conjunto de réplicas, e sua última operação pode ter falhado.
Quando esse erro ocorre, o PyMongo tenta encontrar automaticamente o novo membro principal para as operações subsequentes. Para gerenciar o erro, seu aplicativo deve realizar uma das seguintes ações:
Tente novamente a operação que pode ter falhado
Continue executando, entendendo que a operação pode ter falhado
Importante
O PyMongo gera um erro AutoReconnect
em todas as operações até que o conjunto de réplicas eleja um novo membro primário.
Documentação da API
Para saber mais sobre como criar um objeto MongoClient
no PyMongo, consulte a seguinte documentação da API: