Como Salvar Dados de um Formulário ou Dicionário no MongoDB com Python
Como Salvar Dados de um Formulário ou Dicionário no MongoDB com Python
Salvar estruturas de dados dinâmicas, como dicionários do Python ou payloads JSON de formulários web, é uma das tarefas mais comuns e eficientes no MongoDB. Como se trata de um banco de dados NoSQL orientado a documentos, os dicionários são mapeados nativamente para o formato BSON sem a necessidade de esquemas rígidos ou conversões complexas. A biblioteca oficial
pymongo permite realizar a conexão e a inserção dessas estruturas com poucas linhas de código.Python
from pymongo import MongoClient
# Conecta ao servidor MongoDB local (ajuste a URI para o seu ambiente ou Mongo Atlas)
client = MongoClient('mongodb://localhost:27017/')
# Seleciona o banco de dados 'empresa_db' e a coleção 'clientes'
db = client['empresa_db']
colecao = db['clientes']
# Dados simulados vindos de um formulário web em formato de dicionário
dados_formulario = {
'nome': 'Mariana Souza',
'email': 'mariana.souza@email.com',
'cargo': 'Desenvolvedora Backend',
'interesses': ['Python', 'NoSQL', 'Arquitetura de Software']
}
# Inserção de um único documento na coleção
resultado = colecao.insert_one(dados_formulario)
# O MongoDB gera automaticamente uma chave primária única (_id) caso ela não seja informada
print("Documento inserido com sucesso! ID:", resultado.inserted_id)
# Consulta rápida para confirmar a gravação dos dados
cliente_salvo = colecao.find_one({'_id': resultado.inserted_id})
print("Dados recuperados do banco:", cliente_salvo)
# Encerra a conexão com o banco
client.close()
- Mapeamento Direto (Dict para BSON): O
pymongoconverte automaticamente tipos de dados do Python (listas, dicionários aninhados, strings e inteiros) para o formato BSON do MongoDB. - Geração do
_id: Se o dicionário não contiver o campo_id, o MongoDB criará automaticamente umObjectIdexclusivo de 12 bytes no momento da inserção. - Retorno do
insert_one(): O método retorna um objeto do qual é possível extrairinserted_idpara confirmar o sucesso da gravação ou vincular o documento a outras operações. - Inserção em Lote com
insert_many(): Caso receba uma lista de dicionários vinda de um processamento em massa, utilizecolecao.insert_many(lista_de_dicts)para otimizar o I/O de rede.

Comentários
Postar um comentário