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 enlocalhost
en 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 nada
Conclusió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