En esta sección, aprenderás los conceptos fundamentales de MongoDB, una base de datos NoSQL orientada a documentos. Este conocimiento te proporcionará una base sólida para trabajar con MongoDB en proyectos más complejos.
- ¿Qué es MongoDB?
MongoDB es una base de datos NoSQL que almacena datos en documentos JSON (JavaScript Object Notation) flexibles, en lugar de las tradicionales tablas relacionales. Esto permite una mayor flexibilidad y escalabilidad en el manejo de datos.
Características Clave de MongoDB:
- Documentos JSON: Los datos se almacenan en documentos JSON, lo que facilita la representación de estructuras de datos complejas.
- Esquema Flexible: No requiere un esquema fijo, lo que permite cambios rápidos en la estructura de los datos.
- Escalabilidad Horizontal: Facilita la distribución de datos a través de múltiples servidores.
- Consultas Ricas: Soporta consultas ad-hoc, indexación y agregación.
- Estructura de un Documento en MongoDB
Un documento en MongoDB es una estructura de datos compuesta por pares clave-valor. Aquí tienes un ejemplo de un documento JSON:
{ "_id": "1", "nombre": "Juan Pérez", "edad": 30, "dirección": { "calle": "Calle Falsa 123", "ciudad": "Ciudad Ejemplo", "país": "País Ejemplo" }, "intereses": ["lectura", "viajes", "música"] }
Explicación del Documento:
- _id: Identificador único del documento.
- nombre: Nombre del usuario.
- edad: Edad del usuario.
- dirección: Documento anidado que contiene la dirección del usuario.
- intereses: Lista de intereses del usuario.
- Colecciones
En MongoDB, los documentos se agrupan en colecciones. Una colección es un conjunto de documentos que pueden tener diferentes estructuras. No es necesario que todos los documentos en una colección tengan el mismo conjunto de campos.
Ejemplo de Colección:
Supongamos que tenemos una colección llamada usuarios
que contiene los siguientes documentos:
- Bases de Datos
Una base de datos en MongoDB es un contenedor de colecciones. Cada base de datos tiene su propio conjunto de archivos en el sistema de archivos. Puedes tener múltiples bases de datos en un solo servidor MongoDB.
Ejemplo de Bases de Datos:
- miBaseDeDatos: Contiene colecciones como
usuarios
,productos
,pedidos
. - otraBaseDeDatos: Contiene colecciones como
clientes
,facturas
.
- Operaciones Básicas en MongoDB
Insertar Documentos
Para insertar un documento en una colección, utilizamos el método insertOne
o insertMany
.
Leer Documentos
Para leer documentos de una colección, utilizamos el método find
.
Actualizar Documentos
Para actualizar documentos, utilizamos el método updateOne
o updateMany
.
Eliminar Documentos
Para eliminar documentos, utilizamos el método deleteOne
o deleteMany
.
- Ejercicio Práctico
Ejercicio:
- Crea una colección llamada
libros
. - Inserta tres documentos en la colección
libros
con los siguientes campos:titulo
,autor
,año
. - Realiza una consulta para encontrar todos los libros publicados después del año 2000.
- Actualiza el campo
año
de uno de los libros. - Elimina uno de los libros de la colección.
Solución:
// 1. Crear la colección 'libros' db.createCollection("libros"); // 2. Insertar documentos en la colección 'libros' db.libros.insertMany([ { "titulo": "El Quijote", "autor": "Miguel de Cervantes", "año": 1605 }, { "titulo": "Cien Años de Soledad", "autor": "Gabriel García Márquez", "año": 1967 }, { "titulo": "El Código Da Vinci", "autor": "Dan Brown", "año": 2003 } ]); // 3. Consultar libros publicados después del año 2000 db.libros.find({ "año": { "$gt": 2000 } }); // 4. Actualizar el campo 'año' de uno de los libros db.libros.updateOne( { "titulo": "El Código Da Vinci" }, { "$set": { "año": 2004 } } ); // 5. Eliminar uno de los libros db.libros.deleteOne({ "titulo": "El Quijote" });
Conclusión
En esta sección, hemos cubierto los conceptos básicos de MongoDB, incluyendo la estructura de documentos, colecciones y bases de datos, así como las operaciones CRUD fundamentales. Estos conceptos son esenciales para trabajar eficazmente con MongoDB y te preparan para los temas más avanzados que abordaremos en los siguientes módulos.
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