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:

pip install pymongo

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 en localhost en el puerto 27017.
  • client['mi_base_de_datos']: Selecciona la base de datos llamada mi_base_de_datos.
  • db['mi_coleccion']: Selecciona la colección llamada mi_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

  1. Inserta un documento con los siguientes datos: {"nombre": "Carlos", "edad": 28, "ciudad": "Bilbao"}.
  2. Lee y muestra todos los documentos de la colección.

Ejercicio 2: Actualizar Documentos

  1. Actualiza la ciudad de todos los documentos donde la edad sea menor a 30 a "Granada".
  2. Verifica los cambios leyendo los documentos actualizados.

Ejercicio 3: Eliminar Documentos

  1. Elimina todos los documentos donde la ciudad sea "Granada".
  2. 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!

© Copyright 2024. Todos los derechos reservados