Curso de python nivel medio

¿Qué es MongoDB?

MongoDB es una base de datos NoSQL orientada a documentos, lo que significa que almacena datos en un formato similar a JSON, pero dentro de documentos BSON (Binary JSON). A diferencia de las bases de datos SQL tradicionales, MongoDB no utiliza tablas y filas, sino documentos y colecciones. Es una opción popular para aplicaciones que requieren flexibilidad en el manejo de datos estructurados o semiestructurados.

¿Por qué usar MongoDB con Python?

  • Flexibilidad: Puedes almacenar documentos con estructuras variadas sin la rigidez de un esquema fijo.
  • Escalabilidad: Es fácil de escalar, tanto horizontal como verticalmente.
  • Integración: Python se integra bien con MongoDB a través de bibliotecas como pymongo.

Conectarse a MongoDB desde Python

Para conectarte a MongoDB desde Python, puedes usar la biblioteca pymongo. Si no la tienes instalada, puedes instalarla usando pip:

1pip install pymongo

Paso 1: Conectar a la base de datos

Primero, necesitas conectarte a un servidor MongoDB. Si estás usando un servidor local, la conexión se hace a localhost en el puerto 27017 (el puerto predeterminado de MongoDB).

1from pymongo import MongoClient
2
3# Conectar al servidor de MongoDB
4cliente = MongoClient("mongodb://localhost:27017/")
5
6# Seleccionar o crear la base de datos
7db = cliente["mi_base_de_datos"]
8
9print("Conexión a MongoDB establecida.")
  • ¿Qué hace este código?:
    • Conecta a un servidor MongoDB local.
    • Selecciona (o crea, si no existe) una base de datos llamada mi_base_de_datos.
  • Resultado en pantalla:
    Conexión a MongoDB establecida.

Paso 2: Crear una colección e insertar documentos

En MongoDB, los datos se almacenan en colecciones (similar a las tablas en bases de datos SQL), y cada registro es un documento (similar a una fila).

1# Seleccionar o crear una colección
2coleccion = db["usuarios"]
3
4# Insertar un documento en la colección
5usuario = {"nombre": "Ana", "edad": 30, "email": "ana@example.com"}
6resultado = coleccion.insert_one(usuario)
7
8print(f"Documento insertado con id: {resultado.inserted_id}")
  • ¿Qué hace este código?:
    • Selecciona o crea una colección llamada usuarios.
    • Inserta un documento en la colección con los datos de un usuario.
    • Muestra el ID del documento insertado.
  • Resultado en pantalla:
    Documento insertado con id: 60a7d4b9a0c3c8e123456789

Paso 3: Consultar documentos

Puedes consultar documentos en una colección utilizando varios métodos de consulta.

1# Consultar un documento en la colección
2usuario = coleccion.find_one({"nombre": "Ana"})
3print(f"Usuario encontrado: {usuario}")
4
5# Consultar todos los documentos
6usuarios = coleccion.find()
7print("Todos los usuarios en la base de datos:")
8for usuario in usuarios:
9    print(usuario)
  • ¿Qué hace este código?:
    • Usa find_one para encontrar un documento donde nombre sea "Ana".
    • Usa find para obtener todos los documentos en la colección usuarios.
    • Muestra cada documento encontrado.
  • Resultado en pantalla:
    Usuario encontrado: {'_id': ObjectId('60a7d4b9a0c3c8e123456789'), 'nombre': 'Ana', 'edad': 30, 'email': 'ana@example.com'}
    Todos los usuarios en la base de datos:
    {'_id': ObjectId('60a7d4b9a0c3c8e123456789'), 'nombre': 'Ana', 'edad': 30, 'email': 'ana@example.com'}

Paso 4: Actualizar documentos

Puedes actualizar documentos utilizando el método update_one o update_many.

1# Actualizar un documento en la colección
2resultado = coleccion.update_one(
3    {"nombre": "Ana"},
4    {"$set": {"edad": 31}}
5)
6
7print(f"Documentos modificados: {resultado.modified_count}")
  • ¿Qué hace este código?:
    • Actualiza el documento donde nombre es "Ana", cambiando edad a 31.
    • Muestra cuántos documentos fueron modificados.
  • Resultado en pantalla:
    Documentos modificados: 1

Paso 5: Eliminar documentos

Puedes eliminar documentos de la colección utilizando delete_one o delete_many.

1# Eliminar un documento de la colección
2resultado = coleccion.delete_one({"nombre": "Ana"})
3print(f"Documentos eliminados: {resultado.deleted_count}")
  • ¿Qué hace este código?:
    • Elimina el documento donde nombre es "Ana".
    • Muestra cuántos documentos fueron eliminados.
  • Resultado en pantalla:
    Documentos eliminados: 1

Paso 6: Cerrar la conexión

Es una buena práctica cerrar la conexión a la base de datos cuando hayas terminado.

1# Cerrar la conexión
2cliente.close()
3print("Conexión a MongoDB cerrada.")
  • Resultado en pantalla:
    Conexión a MongoDB cerrada.

Conclusión

MongoDB es una base de datos NoSQL poderosa y flexible que es fácil de usar con Python gracias a la biblioteca pymongo. Puedes crear y manipular colecciones y documentos sin la necesidad de un esquema fijo, lo que te permite trabajar con datos no estructurados o semiestructurados de manera eficiente. ¡Practica estos ejemplos para aprender a integrar MongoDB en tus proyectos Python y gestionar datos de manera flexible y escalable!

  • Loading...