PyMongo: Driver MongoDB para Python – Guia Completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução

No mundo moderno do desenvolvimento de software, os bancos de dados NoSQL se tornaram parte essencial da stack tecnológica. O MongoDB, como um dos principais SGBDs orientados a documentos, oferece aos desenvolvedores ferramentas poderosas para trabalhar com dados não estruturados. O PyMongo atua como o driver oficial do Python para MongoDB, garantindo integração completa entre aplicações Python e o MongoDB.

O que é PyMongo

PyMongo é a biblioteca oficial do Python para interagir com o MongoDB. É um driver de alto desempenho que fornece acesso direto a todos os recursos do MongoDB, incluindo funcionalidades modernas como transações, change streams e coleções temporárias.

Principais recursos do PyMongo

Compatibilidade e suporte de versões

  • Suporte ao MongoDB versões 3.6, 4.0, 4.2, 4.4, 5.0, 6.0 e 7.0
  • Compatível com Python 3.7+
  • Atualizações regulares e correções de segurança

Funcionalidades

  • Suporte completo ao formato BSON (Binary JSON)
  • Suporte nativo ao GridFS para armazenar arquivos grandes
  • Reconexão automática em caso de falhas
  • Suporte a criptografia SSL/TLS
  • Monitoramento de desempenho e profiling

Vantagens arquiteturais

  • Operações thread-safe
  • Pool de conexões
  • Descoberta automática da topologia do cluster
  • Suporte a réplicas e sharding

Instalação e configuração do PyMongo

Instalação básica

pip install pymongo

Instalação com recursos adicionais

# Para trabalhar com criptografia
pip install pymongo[encryption]

# Para trabalhar com Kerberos
pip install pymongo[gssapi]

# Para operações assíncronas
pip install motor

Verificando a instalação

import pymongo
print(pymongo.version)

Conectando ao MongoDB

Formas principais de conexão

Conexão local

from pymongo import MongoClient

# Conexão simples
client = MongoClient()
# ou
client = MongoClient('localhost', 27017)
# ou
client = MongoClient('mongodb://localhost:27017/')

Conexão com autenticação

client = MongoClient('mongodb://usuario:senha@localhost:27017/')

Conexão ao MongoDB Atlas

client = MongoClient('mongodb+srv://usuario:senha@cluster.mongodb.net/')

Conexão com SSL

client = MongoClient('mongodb://localhost:27017/',
                    ssl=True,
                    ssl_cert_reqs=ssl.CERT_NONE)

Parâmetros de conexão

client = MongoClient(
    host='localhost',
    port=27017,
    maxPoolSize=50,
    minPoolSize=10,
    maxIdleTimeMS=30000,
    connectTimeoutMS=5000,
    socketTimeoutMS=5000,
    serverSelectionTimeoutMS=5000,
    retryWrites=True,
    retryReads=True
)

Componentes principais do PyMongo

Trabalhando com bancos de dados

# Obtendo um banco de dados
db = client['meubanco']
# ou
db = client.meubanco

# Listando todos os bancos de dados
databases = client.list_database_names()

# Excluindo um banco de dados
client.drop_database('meubanco')

# Obtendo estatísticas do banco de dados
stats = db.command('dbstats')

Trabalhando com coleções

# Obtendo uma coleção
collection = db['minhacolecao']
# ou
collection = db.minhacolecao

# Criando uma coleção com opções
db.create_collection('m                    

Recommendations