Curso
Pronto para conectar seu cluster MongoDB ao seu projeto em Python? Você deu sorte. Neste tutorial, você vai entender o que é o PyMongo, por que ele é o pacote preferido de quem usa MongoDB como banco de dados em projetos Python e como fazer sua primeira conexão rodar do jeito mais ágil possível.
Se você está começando agora, não deixe de conferir nosso curso Introduction to Using MongoDB for Data Science in Python.
O que é o PyMongo?
Então, o que exatamente é o pacote PyMongo para Python? Ele é o driver oficial do MongoDB para Python, permitindo que desenvolvedores conectem, consultem e interajam entre seus apps Python e bancos de dados MongoDB.
É a forma recomendada de acessar bancos de dados MongoDB a partir do Python e funciona muito bem para construir diferentes aplicações web, graças à compatibilidade com Flask e Django. Ele realmente ajuda desenvolvedores Python a tirar o máximo do MongoDB em seus projetos.
Vamos ver como começar com o PyMongo executando um CRUD (create, read, update, delete) de exemplo para usuários e mostrar como é simples colocar tudo para rodar com o mínimo de código!
Pré-requisitos para o sucesso
Para acompanhar este tutorial sem perrengue, garanta que você tem o seguinte:
- Uma conta no MongoDB Atlas
- Uma IDE de sua preferência (este tutorial usa um notebook do Google Colab)
- Python 3.6+
pipinstalado (se você estiver usando uma IDE diferente de um notebook do Google Colab).
Configurando um cluster MongoDB
Antes de conectar o banco MongoDB ao projeto em Python, precisamos criar um cluster! Para isso, acesse sua conta do MongoDB Atlas e crie um novo projeto, caso ainda não tenha.
Em seguida, crie um cluster dentro do projeto.

Agora você está pronto para fazer o deploy do cluster. Clique na opção “Free” (é gratuito para sempre!) e escolha um nome para o seu cluster ou mantenha o padrão.
Lembre-se: depois que você definir um nome para o cluster, não será possível alterá-lo. Escolha o provedor de nuvem (AWS, Google Cloud ou Azure) e confirme se a região está correta.

Clique no botão verde “Create Deployment” e podemos seguir.
Você será solicitado a definir um “Username” e “Password” para o cluster. Escolha algo fácil de lembrar (mas não tão fácil quanto o deste tutorial!) e seguro, pois você vai precisar dessas credenciais sempre que acessar sua Connection String.
Não esqueça de clicar em “Preload sample dataset” para facilitar sua vida. Isso vai carregar automaticamente o conjunto de dados de exemplo “sample_mflix”, que usaremos aqui.
Clique em “Create Database User” para continuar.

Agora você pode se conectar ao cluster! Há várias formas de fazer isso, mas como este tutorial é focado em PyMongo, vamos conectar via Drivers.

Selecione “Python” e a versão que deseja usar (vamos escolher a 4.7 ou superior) e você verá sua Connection String. Seu usuário e senha já aparecem preenchidos para facilitar.

Agora que você tem sua Connection String, guarde-a em um local seguro. Podemos clicar no botão verde “Done”.
É assim que o seu cluster fica depois de configurado.
![Cluster após a configuração]](https://media.datacamp.com/cms/ad_4nxf2qowpihkjm1stvlc-ddf-wiee5pc64vmyac6z-hvxdhkucer83idgex9z73erlpem2bm4vgfq6sfqb8d5opoibgpxvlzlyenuri_fcicaw_7_6lrqpk9_djmzyjowquwtdndjzg.png)
Vá até “Network Access” no menu à esquerda e confirme se seu endereço IP está configurado corretamente. Para este tutorial (embora não seja recomendado em produção), você pode definir o IP como “Access from Anywhere” para simplificar.
Aviso para produção: em aplicações de produção, coloque na lista de permissões apenas IPs específicos em Network Access > IP Access List no Atlas.
Bora para a sua IDE favorita para brincar com os dados que temos em mãos!
Conectando e executando operações CRUD com PyMongo
O primeiro passo é usar o pip para instalar o pymongo. Também vamos instalar o getpass aqui porque queremos manter a conexão segura:
!pip install pymongo
Agora, vamos configurar a conexão do MongoDB com o nosso cluster. Vamos usar o MongoClient para garantir a conexão.
import getpass
from pymongo import MongoClient
# Get connection string from user
connection_string = getpass.getpass(prompt="Enter connection string WITH USER + PASS here: ")
try:
client = MongoClient(connection_string)
client.admin.command("ping")
print("Successfully connected")
except Exception as e:
print("Connection failed:", e)
Volte ao seu cluster para ver o nome do banco e da coleção. O banco se chama sample_mflix e a coleção é users.
Veja um exemplo do tipo de informação com que vamos trabalhar neste cluster de exemplo. Temos o ObjectId de cada documento, além do nome, e-mail e senha de cada usuário.

Vamos rodar um teste rápido para garantir que conseguimos ler os documentos pelo nosso script:
database = client["sample_mflix"]
collection = database["users"]
for document in collection.find().limit(20):
print(document)
Se tudo correr bem, você verá algo assim:

Observação: o dataset sample_mflix inclui senhas em texto puro para fins de demonstração. Em aplicações reais, sempre faça hash das senhas (por exemplo, com bcrypt ou Argon2) e evite hardcode de credenciais.
Acabamos de ler as informações do nosso cluster! Agora, vamos criar um novo usuário.
new_user = {
"name": "Anaiya Raisinghani",
"email": "fakeanaiya@gmail.com",
"password": "pleasedonothackme"
}
# insert the document
result = collection.insert_one(new_user)
print(result.inserted_id)
Conseguimos ver o novo ID do usuário. Se eu voltar ao cluster, posso buscar por esse ID e verificar se o documento do novo usuário aparece:

Agora, vamos atualizar o documento que acabamos de criar.
Observação: o BSON já vem com o PyMongo — não é preciso instalação extra. ObjectId é o formato padrão de ID único do MongoDB.
from bson import ObjectId
collection.update_one(
{"_id": result.inserted_id}, # using the same document that we inserted above
{"$set": {"password": "help!ivebeenhacked!!"}}
)

Como dá para ver, a senha foi atualizada e a mudança aparece na interface do MongoDB Atlas.
Agora, vamos excluir esse documento.
delete_user = collection.delete_one({"_id": result.inserted_id})
print("Deleted users:", delete_user.deleted_count)
O número de usuários excluídos será “1”. Vamos conferir na interface do MongoDB Atlas (só para garantir!).

Pronto, excluímos o documento com sucesso!
Conclusão
Neste tutorial, passamos pelos seus primeiros 10 minutos com o PyMongo — o driver oficial do MongoDB para Python. Lemos documentos da coleção, criamos um novo usuário, atualizamos esse usuário e o excluímos!
Para saber mais sobre PyMongo, confira o curso Introduction to Using MongoDB for Data Science in Python e visite a documentação oficial.
FAQs
Quais são alguns erros comuns ao conectar PyMongo ao MongoDB?
Os problemas mais comuns incluem connection string incorreta, restrições de firewall (lista de IPs permitidos) ou falhas de autenticação. Revise com atenção suas credenciais e as configurações de rede se a conexão falhar.
O PyMongo oferece suporte a programação assíncrona?
O PyMongo não oferece suporte nativo a operações assíncronas. Se você precisa de async, considere usar o Motor, o driver assíncrono oficial do MongoDB para Python.
O PyMongo lida com transações no banco de dados?
Sim, o PyMongo suporta transações ACID multidocumento, desde que você use replica sets ou clusters fragmentados (sharded) do MongoDB. Transações não estão disponíveis em instalações stand-alone.
Como lidar com pooling de conexões no PyMongo?
O PyMongo gerencia automaticamente o pool de conexões nos bastidores. Se necessário, você pode configurar parâmetros (como tamanho do pool e timeout) nas definições do MongoClient.
Posso usar PyMongo com Pandas para tarefas de análise de dados?
Com certeza! Você pode buscar dados do MongoDB com PyMongo e carregá-los diretamente em DataFrames do Pandas para análise e manipulação.
Anaiya é uma defensora do desenvolvedor na MongoDB, localizada em Nova York.

