Imagem de destaque do blog justcode.com.br.

Como utilizar Python com o banco de dados MongoDB

Hoje veremos como utilizar a linguagem de programação Python com o banco de dados MongoDB através do conector pymongo.

Pymongo

O pymongo é uma biblioteca Python oficial que permite interagir com o MongoDB, um banco de dados NoSQL de código aberto.

Ele fornece uma API simples e intuitiva para trabalhar com o MongoDB, permitindo que os desenvolvedores criem, atualizem, consultem e excluam dados de maneira eficiente.

O pymongo pode ser instalado usando o pip, que é o gerenciador de pacotes padrão do Python:

pip install pymongo

Depois de instalado, você pode importar o conector em seus scripts Python e usá-lo para se conectar a um servidor Redis e executar operações de banco de dados.


Contêiner

Para testar o código de exemplo foi utilizando o seguinte arquivo docker-compose.yaml:

services:
  db:
    image: mongo:latest
    container_name: MongoDB
    restart: on-failure
    ports:
      - '27017:27017'
    environment:
      MONGO_INITDB_ROOT_USERNAME: dbuser
      MONGO_INITDB_ROOT_PASSWORD: 123456
      MONGO_INITDB_DATABASE: database_name

📝 Contêiner testado com Docker e com o Podman.


Exemplo de CRUD

# -*- coding: utf-8 -*-
"""CRUD - Python - pymongo - MongoDB."""

from bson import ObjectId
from pymongo import MongoClient, ReturnDocument

client = MongoClient(
    username='dbuser',
    password='123456',
    host='localhost',
    port=27017,
    # authSource='admin',
)

# Conexão utilizando URI.
# username = 'dbuser'
# password = '123456'
# host = 'localhost'
# port = '27017'
# db = 'database_name'
# authSource = 'admin'
# URI = f'mongodb://{username}:{password}@{host}:{port}/{db}' #?authSource={authSource}'
# client = MongoClient(host=URI)

db = client['database_name']

# Remove collection.
db.drop_collection('collection_name')

# Create collection.
collection = db['collection_name']

# Create.
print('[!] Create [!]')
result = collection.insert_one(
    {
        'name': 'renato',
        'age': 35,
    },
)
obj_id = result.inserted_id
print(obj_id)

result = collection.insert_many(
    [
        {'name': 'maria', 'age': 25},
        {'name': 'sandy', 'age': 19},

    ],
)
print(result.inserted_ids)

# Read.
print('\n[!] Read [!]')
print(collection.find_one({'_id': ObjectId(obj_id)}))

# Limit.
for document in collection.find().limit(3):
    print(document)

# Update.
print('\n[!] Update [!]')
print(collection.find_one({'_id': ObjectId(obj_id)}))
result = collection.find_one_and_update(
    {'_id': ObjectId(obj_id)},
    {'$set': {'name': 'joão'}},
    return_document=ReturnDocument.AFTER,
)
print(collection.find_one({'_id': ObjectId(obj_id)}))

# Delete.
print('\n[!] Delete [!]')
print(collection.find_one({'_id': ObjectId(obj_id)}))
result = collection.delete_one(
    {'_id': ObjectId(obj_id)},
)
print(collection.find_one({'_id': ObjectId(obj_id)}))

client.close()

Conclusão

O MongoDB é uma poderosa ferramenta de banco de dados NoSQL que oferece flexibilidade, escalabilidade e desempenho para uma variedade de aplicações.

Compreender os conceitos básicos, como documentos, coleções, consultas e índices, pode ajudá-lo a utilizar o MongoDB de forma eficaz em seus projetos de desenvolvimento.