En este módulo, aprenderás cómo interactuar con MongoDB utilizando Python. Python es un lenguaje de programación versátil y popular, y su combinación con MongoDB permite crear aplicaciones robustas y escalables. Vamos a cubrir desde la instalación de las bibliotecas necesarias hasta la realización de operaciones CRUD (Crear, Leer, Actualizar, Eliminar) y más.
Contenido
Instalación de PyMongo
Para interactuar con MongoDB desde Python, utilizaremos la biblioteca PyMongo. Puedes instalarla utilizando pip:
Conexión a MongoDB
Primero, necesitamos conectarnos a nuestra base de datos MongoDB. Aquí hay un ejemplo básico de cómo hacerlo:
from pymongo import MongoClient
# Conectar a MongoDB en localhost y puerto 27017
client = MongoClient('localhost', 27017)
# Seleccionar la base de datos
db = client['mi_base_de_datos']
# Seleccionar la colección
collection = db['mi_coleccion']Explicación del Código
MongoClient('localhost', 27017): Crea una conexión al servidor MongoDB enlocalhosten el puerto27017.client['mi_base_de_datos']: Selecciona la base de datos llamadami_base_de_datos.db['mi_coleccion']: Selecciona la colección llamadami_coleccion.
Operaciones CRUD
Crear Documentos
Para insertar documentos en una colección, utilizamos el método insert_one o insert_many.
# Insertar un solo documento
documento = {"nombre": "Juan", "edad": 30, "ciudad": "Madrid"}
collection.insert_one(documento)
# Insertar múltiples documentos
documentos = [
{"nombre": "Ana", "edad": 25, "ciudad": "Barcelona"},
{"nombre": "Luis", "edad": 35, "ciudad": "Valencia"}
]
collection.insert_many(documentos)Leer Documentos
Para leer documentos, utilizamos los métodos find_one y find.
# Leer un solo documento
resultado = collection.find_one({"nombre": "Juan"})
print(resultado)
# Leer múltiples documentos
resultados = collection.find({"ciudad": "Madrid"})
for doc in resultados:
print(doc)Actualizar Documentos
Para actualizar documentos, utilizamos los métodos update_one y update_many.
# Actualizar un solo documento
collection.update_one({"nombre": "Juan"}, {"$set": {"edad": 31}})
# Actualizar múltiples documentos
collection.update_many({"ciudad": "Madrid"}, {"$set": {"ciudad": "Sevilla"}})Eliminar Documentos
Para eliminar documentos, utilizamos los métodos delete_one y delete_many.
# Eliminar un solo documento
collection.delete_one({"nombre": "Juan"})
# Eliminar múltiples documentos
collection.delete_many({"ciudad": "Sevilla"})Consultas Avanzadas
Podemos realizar consultas más complejas utilizando operadores de MongoDB.
# Consultar documentos con edad mayor a 30
resultados = collection.find({"edad": {"$gt": 30}})
for doc in resultados:
print(doc)
# Consultar documentos con nombre que empiece con 'A'
resultados = collection.find({"nombre": {"$regex": "^A"}})
for doc in resultados:
print(doc)Ejercicios Prácticos
Ejercicio 1: Insertar y Leer Documentos
- Inserta un documento con los siguientes datos:
{"nombre": "Carlos", "edad": 28, "ciudad": "Bilbao"}. - Lee y muestra todos los documentos de la colección.
Ejercicio 2: Actualizar Documentos
- Actualiza la ciudad de todos los documentos donde la edad sea menor a 30 a "Granada".
- Verifica los cambios leyendo los documentos actualizados.
Ejercicio 3: Eliminar Documentos
- Elimina todos los documentos donde la ciudad sea "Granada".
- Verifica que los documentos han sido eliminados.
Soluciones
Solución Ejercicio 1
# Insertar documento
collection.insert_one({"nombre": "Carlos", "edad": 28, "ciudad": "Bilbao"})
# Leer y mostrar todos los documentos
resultados = collection.find()
for doc in resultados:
print(doc)Solución Ejercicio 2
# Actualizar ciudad
collection.update_many({"edad": {"$lt": 30}}, {"$set": {"ciudad": "Granada"}})
# Verificar cambios
resultados = collection.find({"ciudad": "Granada"})
for doc in resultados:
print(doc)Solución Ejercicio 3
# Eliminar documentos
collection.delete_many({"ciudad": "Granada"})
# Verificar eliminación
resultados = collection.find({"ciudad": "Granada"})
for doc in resultados:
print(doc) # No debería imprimir nadaConclusión
En este módulo, hemos aprendido cómo interactuar con MongoDB utilizando Python y la biblioteca PyMongo. Hemos cubierto desde la instalación y conexión hasta la realización de operaciones CRUD y consultas avanzadas. Con estos conocimientos, estás preparado para integrar MongoDB en tus aplicaciones Python y manejar datos de manera eficiente.
En el siguiente módulo, exploraremos cómo construir aplicaciones del mundo real utilizando MongoDB, lo que te permitirá aplicar lo que has aprendido en proyectos prácticos. ¡Sigue adelante!
Curso de MongoDB
Módulo 1: Introducción a MongoDB
Módulo 2: Operaciones CRUD en MongoDB
Módulo 3: Modelado de Datos en MongoDB
Módulo 4: Indexación y Agregación
Módulo 5: Características Avanzadas de MongoDB
Módulo 6: Rendimiento y Seguridad
- Optimización del Rendimiento
- Respaldo y Restauración
- Mejores Prácticas de Seguridad
- Monitoreo y Alertas
