MongoDB
MongoDB es una base de datos NoSQL basada en documentos, lo que significa que almacena datos en formato JSON-like. Es ideal para manejar datos estructurados y no estructurados.

¿Por qué usarlo?
MongoDB se usará para almacenar y gestionar los datos de la aplicación, como usuarios, productos o pedidos. Es flexible y fácil de escalar, ideal para aplicaciones web modernas.
Recursos para aprender MongoDB
-
Documentación oficial de MongoDB: Proporciona información completa sobre conceptos fundamentales, modelado de datos, consultas, agregaciones y más.
-
Curso gratuito de MongoDB en YouTube: Busca cursos específicos en español que ofrezcan una introducción práctica a MongoDB. Algunos canales populares incluyen "freeCodeCamp" y "Academia Geek".
-
MongoDB Atlas: Configuración y uso: Guía sobre cómo configurar y utilizar MongoDB Atlas, la plataforma de base de datos como servicio (DBaaS) que permite gestionar bases de datos en la nube fácilmente.
-
MongoDB University: Ofrece cursos gratuitos sobre MongoDB, desde niveles básicos hasta avanzados, lo que permite a los estudiantes aprender a su propio ritmo.
-
Documentación sobre Mongoose: Mongoose es una biblioteca ODM (Object Data Modeling) para MongoDB y Node.js, que facilita la interacción con la base de datos desde aplicaciones Express.
Conceptos clave
- Configuración de MongoDB Atlas.
- Uso de Mongoose para modelar datos.
- Creación de esquemas y validaciones.
- Inserción, consulta y actualización de datos.
- Seeding: cómo poblar la base de datos con datos iniciales.
Retos prácticos
Reto 1: Configurar MongoDB Atlas
- Crea una cuenta en MongoDB Atlas.
- Configura un clúster gratuito y crea una base de datos llamada
appDB
. - Añade una colección llamada
productos
y utiliza la herramienta de carga de datos para insertar al menos tres documentos con los campos:nombre
(String).precio
(Number).categoria
(String).
Ejemplo de documento:
{
"nombre": "Producto A",
"precio": 10.99,
"categoria": "Electrónica"
}
Reto 2: Conectar Node.js a MongoDB
- Usa
Mongoose
para conectar tu aplicación Node.js con MongoDB Atlas. - Define un esquema para la colección
productos
con los siguientes campos:nombre
: Requerido y debe ser una cadena.precio
: Requerido y debe ser un número.categoria
: Opcional y debe ser una cadena.
Pista: Código base
const mongoose = require('mongoose');
const productoSchema = new mongoose.Schema({
nombre: { type: String, required: true },
precio: { type: Number, required: true },
categoria: { type: String },
});
const Producto = mongoose.model('Producto', productoSchema);
module.exports = Producto;
Reto 3: Insertar datos desde Node.js
- Escribe un script en Node.js que utilice el modelo
Producto
para insertar un nuevo documento en la base de datos. - Inserta al menos un producto con los datos proporcionados por el usuario a través de la línea de comandos (usa
process.argv
).
Ejemplo de ejecución:
node insertarProducto.js "Producto B" 20.99 "Hogar"
Pista: Usa el siguiente fragmento como guía:
const Producto = require('./models/producto');
const nuevoProducto = new Producto({
nombre: process.argv[2],
precio: parseFloat(process.argv[3]),
categoria: process.argv[4],
});
nuevoProducto.save()
.then(() => console.log('Producto insertado con éxito'))
.catch((error) => console.error('Error al insertar producto:', error));
Reto 4: Consultar datos
- Escribe un script en Node.js que recupere todos los documentos de la colección
productos
y los imprima en la consola. - Filtra los productos por
categoria
usando un parámetro proporcionado desde la línea de comandos.
Ejemplo de ejecución:
node consultarProductos.js "Electrónica"
Pista: Usa el método find
de Mongoose con un filtro dinámico.
Reto 5: Actualizar y eliminar datos
- Crea un script que permita actualizar el precio de un producto basado en su nombre.
- Crea otro script para eliminar un producto utilizando su nombre como criterio.
Pista: Usa los métodos findOneAndUpdate
y findOneAndDelete
de Mongoose.
Ejemplo de ejecución:
node actualizarPrecio.js "Producto A" 12.99 node eliminarProducto.js "Producto A"
Reto 6: Poblar la base de datos (Seeding)
- Escribe un script de seeding que inserte automáticamente 5 productos en la colección
productos
. - Asegúrate de que los productos tengan valores aleatorios para los campos
nombre
,precio
ycategoria
.
Pista: Usa un array de objetos y el método insertMany
de Mongoose.
Estos retos te ayudarán a entender los conceptos fundamentales de MongoDB y a preparar tu base de datos para integrarla con el resto del stack MERN.