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.

npm install mongoose

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

  1. Crea un nuevo documento en la colección usuarios con los campos nombre, edad y email.
  2. Lee todos los documentos de la colección usuarios y muéstralos en la consola.

Ejercicio 2: Actualizar y Eliminar Documentos

  1. Actualiza el campo edad de un documento específico en la colección usuarios.
  2. 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.

© Copyright 2024. Todos los derechos reservados