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.
- Selecciona o crea una colección llamada
- 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_onepara encontrar un documento dondenombresea "Ana". - Usa
findpara obtener todos los documentos en la colecciónusuarios. - Muestra cada documento encontrado.
- Usa
- 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
nombrees "Ana", cambiandoedada 31. - Muestra cuántos documentos fueron modificados.
- Actualiza el documento donde
- 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
nombrees "Ana". - Muestra cuántos documentos fueron eliminados.
- Elimina el documento donde
- 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...