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.

  1. ¿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.

  1. 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.

  1. 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:

{
  "_id": "1",
  "nombre": "Juan Pérez",
  "edad": 30
}
{
  "_id": "2",
  "nombre": "Ana Gómez",
  "edad": 25,
  "profesión": "Ingeniera"
}

  1. 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.

  1. Operaciones Básicas en MongoDB

Insertar Documentos

Para insertar un documento en una colección, utilizamos el método insertOne o insertMany.

db.usuarios.insertOne({
  "_id": "3",
  "nombre": "Carlos López",
  "edad": 28
});

Leer Documentos

Para leer documentos de una colección, utilizamos el método find.

db.usuarios.find({ "edad": { "$gt": 25 } });

Actualizar Documentos

Para actualizar documentos, utilizamos el método updateOne o updateMany.

db.usuarios.updateOne(
  { "_id": "3" },
  { "$set": { "edad": 29 } }
);

Eliminar Documentos

Para eliminar documentos, utilizamos el método deleteOne o deleteMany.

db.usuarios.deleteOne({ "_id": "3" });

  1. Ejercicio Práctico

Ejercicio:

  1. Crea una colección llamada libros.
  2. Inserta tres documentos en la colección libros con los siguientes campos: titulo, autor, año.
  3. Realiza una consulta para encontrar todos los libros publicados después del año 2000.
  4. Actualiza el campo año de uno de los libros.
  5. 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.

© Copyright 2024. Todos los derechos reservados