En este módulo, aprenderás cómo interactuar con MongoDB utilizando JavaScript a través de Node.js. Este conocimiento es esencial para desarrollar aplicaciones web modernas que requieren una base de datos NoSQL robusta y flexible.
Contenido
Introducción a Node.js y MongoDB
Node.js es un entorno de ejecución para JavaScript que permite ejecutar código JavaScript en el servidor. MongoDB es una base de datos NoSQL que almacena datos en documentos JSON. Juntos, Node.js y MongoDB forman una combinación poderosa para el desarrollo de aplicaciones web.
Conceptos Clave
- Node.js: Entorno de ejecución para JavaScript en el servidor.
- MongoDB: Base de datos NoSQL que utiliza documentos JSON.
- Mongoose: Biblioteca de Node.js que facilita la interacción con MongoDB.
Instalación y Configuración
Requisitos Previos
- Node.js y npm instalados en tu sistema.
- MongoDB instalado y en ejecución.
Instalación de Mongoose
Para interactuar con MongoDB desde Node.js, utilizaremos Mongoose, una biblioteca que proporciona una capa de abstracción sobre MongoDB.
Conexión a MongoDB
Primero, crea un archivo app.js
y configura la conexión a MongoDB.
const mongoose = require('mongoose'); // Conexión a MongoDB mongoose.connect('mongodb://localhost:27017/miBaseDeDatos', { useNewUrlParser: true, useUnifiedTopology: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, 'Error de conexión:')); db.once('open', function() { console.log('Conectado a MongoDB'); });
Explicación del Código
mongoose.connect
: Establece la conexión con la base de datos MongoDB.db.on('error')
: Maneja errores de conexión.db.once('open')
: Confirma que la conexión se ha establecido correctamente.
Operaciones CRUD
Creando un Esquema y un Modelo
Define un esquema y un modelo para los documentos que almacenarás en MongoDB.
const Schema = mongoose.Schema; const usuarioSchema = new Schema({ nombre: String, edad: Number, email: String }); const Usuario = mongoose.model('Usuario', usuarioSchema);
Crear Documentos
const nuevoUsuario = new Usuario({ nombre: 'Juan Pérez', edad: 30, email: '[email protected]' }); nuevoUsuario.save((err) => { if (err) return console.error(err); console.log('Usuario guardado con éxito'); });
Leer Documentos
Usuario.find({}, (err, usuarios) => { if (err) return console.error(err); console.log(usuarios); });
Actualizar Documentos
Usuario.updateOne({ nombre: 'Juan Pérez' }, { edad: 31 }, (err, res) => { if (err) return console.error(err); console.log('Usuario actualizado con éxito'); });
Eliminar Documentos
Usuario.deleteOne({ nombre: 'Juan Pérez' }, (err) => { if (err) return console.error(err); console.log('Usuario eliminado con éxito'); });
Ejercicios Prácticos
Ejercicio 1: Crear y Leer Documentos
- Crea un nuevo documento en la colección
usuarios
con los camposnombre
,edad
yemail
. - Lee todos los documentos de la colección
usuarios
y muéstralos en la consola.
Ejercicio 2: Actualizar y Eliminar Documentos
- Actualiza el campo
edad
de un documento específico en la colecciónusuarios
. - Elimina un documento específico de la colección
usuarios
.
Soluciones
Solución Ejercicio 1
const nuevoUsuario = new Usuario({ nombre: 'Ana Gómez', edad: 25, email: '[email protected]' }); nuevoUsuario.save((err) => { if (err) return console.error(err); console.log('Usuario guardado con éxito'); Usuario.find({}, (err, usuarios) => { if (err) return console.error(err); console.log(usuarios); }); });
Solución Ejercicio 2
Usuario.updateOne({ nombre: 'Ana Gómez' }, { edad: 26 }, (err, res) => { if (err) return console.error(err); console.log('Usuario actualizado con éxito'); Usuario.deleteOne({ nombre: 'Ana Gómez' }, (err) => { if (err) return console.error(err); console.log('Usuario eliminado con éxito'); }); });
Conclusión
En este módulo, has aprendido cómo conectar Node.js con MongoDB utilizando Mongoose, y cómo realizar operaciones CRUD básicas. Estos conocimientos son fundamentales para desarrollar aplicaciones web modernas que requieren una base de datos NoSQL. En el próximo módulo, exploraremos cómo aplicar estos conceptos en aplicaciones del mundo real.
¡Felicidades por completar este módulo! Ahora estás listo para avanzar y aplicar tus conocimientos en proyectos más complejos.
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