Introducción
MongoDB es una base de datos NoSQL orientada a documentos que se utiliza para almacenar grandes volúmenes de datos en un formato flexible y escalable. A diferencia de las bases de datos relacionales tradicionales, MongoDB no utiliza tablas y filas, sino que almacena datos en documentos JSON (JavaScript Object Notation) que pueden tener estructuras variadas.
Características Clave de MongoDB
-
Orientado a Documentos:
- Los datos se almacenan en documentos BSON (una extensión binaria de JSON).
- Cada documento puede tener una estructura diferente, lo que proporciona flexibilidad.
-
Escalabilidad Horizontal:
- MongoDB permite la distribución de datos a través de múltiples servidores utilizando la fragmentación (sharding).
- Esto facilita el manejo de grandes volúmenes de datos y el aumento de la capacidad de almacenamiento y procesamiento.
-
Esquema Flexible:
- No es necesario definir un esquema fijo antes de insertar datos.
- Los documentos en una colección pueden tener diferentes campos y estructuras.
-
Consultas Ricas:
- MongoDB soporta consultas ad-hoc, indexación y agregación.
- Permite realizar búsquedas complejas y análisis de datos.
-
Alta Disponibilidad:
- Utiliza la replicación para asegurar la disponibilidad de los datos.
- Los datos se replican en múltiples servidores, proporcionando redundancia y tolerancia a fallos.
-
Soporte para Transacciones:
- A partir de la versión 4.0, MongoDB soporta transacciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) en múltiples documentos.
Comparación con Bases de Datos Relacionales
| Característica | MongoDB | Bases de Datos Relacionales (SQL) |
|---|---|---|
| Modelo de Datos | Documentos (JSON/BSON) | Tablas y Filas |
| Esquema | Flexible | Fijo |
| Escalabilidad | Horizontal (Sharding) | Vertical (Escalado de Hardware) |
| Consultas | Ad-hoc, Indexación, Agregación | SQL (Structured Query Language) |
| Transacciones | Soporte ACID (desde la versión 4.0) | Soporte ACID Completo |
| Alta Disponibilidad | Replicación | Replicación y Clustering |
Ejemplo Práctico
A continuación, se muestra un ejemplo de cómo se vería un documento en MongoDB:
{
"_id": "507f1f77bcf86cd799439011",
"name": "John Doe",
"email": "[email protected]",
"age": 29,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345"
},
"hobbies": ["reading", "traveling", "swimming"]
}Explicación del Ejemplo
- _id: Es un identificador único para el documento. MongoDB genera automáticamente este campo si no se proporciona.
- name, email, age: Campos simples que almacenan datos básicos del usuario.
- address: Un documento anidado que contiene información de la dirección.
- hobbies: Un array que almacena una lista de hobbies.
Ejercicio Práctico
Ejercicio 1: Crear un Documento
- Objetivo: Crear un documento que represente un libro en una colección llamada
books. - Requisitos:
- El documento debe tener los siguientes campos:
title,author,year,genres(array), yavailable(booleano).
- El documento debe tener los siguientes campos:
Solución
{
"title": "To Kill a Mockingbird",
"author": "Harper Lee",
"year": 1960,
"genres": ["Fiction", "Classic"],
"available": true
}Retroalimentación
- Error Común: Olvidar incluir el campo
_id. MongoDB lo generará automáticamente si no se proporciona. - Consejo: Asegúrate de que los tipos de datos sean correctos (por ejemplo,
yeardebe ser un número,availabledebe ser un booleano).
Conclusión
En esta lección, hemos aprendido qué es MongoDB, sus características clave y cómo se compara con las bases de datos relacionales tradicionales. También hemos visto un ejemplo práctico de un documento en MongoDB y hemos realizado un ejercicio para reforzar el concepto. En la próxima lección, aprenderemos cómo instalar MongoDB en diferentes sistemas operativos.
Continúa con: Instalando MongoDB
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
