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.
Posts relacionados:
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
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.