Introducción

MongoDB es una base de datos NoSQL orientada a documentos que se utiliza para almacenar grandes volúmenes de datos en un formato flexible y escalable. A diferencia de las bases de datos relacionales tradicionales, MongoDB no utiliza tablas y filas, sino que almacena datos en documentos JSON (JavaScript Object Notation) que pueden tener estructuras variadas.

Características Clave de MongoDB

  1. Orientado a Documentos:

    • Los datos se almacenan en documentos BSON (una extensión binaria de JSON).
    • Cada documento puede tener una estructura diferente, lo que proporciona flexibilidad.
  2. Escalabilidad Horizontal:

    • MongoDB permite la distribución de datos a través de múltiples servidores utilizando la fragmentación (sharding).
    • Esto facilita el manejo de grandes volúmenes de datos y el aumento de la capacidad de almacenamiento y procesamiento.
  3. Esquema Flexible:

    • No es necesario definir un esquema fijo antes de insertar datos.
    • Los documentos en una colección pueden tener diferentes campos y estructuras.
  4. Consultas Ricas:

    • MongoDB soporta consultas ad-hoc, indexación y agregación.
    • Permite realizar búsquedas complejas y análisis de datos.
  5. Alta Disponibilidad:

    • Utiliza la replicación para asegurar la disponibilidad de los datos.
    • Los datos se replican en múltiples servidores, proporcionando redundancia y tolerancia a fallos.
  6. Soporte para Transacciones:

    • A partir de la versión 4.0, MongoDB soporta transacciones ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) en múltiples documentos.

Comparación con Bases de Datos Relacionales

Característica MongoDB Bases de Datos Relacionales (SQL)
Modelo de Datos Documentos (JSON/BSON) Tablas y Filas
Esquema Flexible Fijo
Escalabilidad Horizontal (Sharding) Vertical (Escalado de Hardware)
Consultas Ad-hoc, Indexación, Agregación SQL (Structured Query Language)
Transacciones Soporte ACID (desde la versión 4.0) Soporte ACID Completo
Alta Disponibilidad Replicación Replicación y Clustering

Ejemplo Práctico

A continuación, se muestra un ejemplo de cómo se vería un documento en MongoDB:

{
  "_id": "507f1f77bcf86cd799439011",
  "name": "John Doe",
  "email": "[email protected]",
  "age": 29,
  "address": {
    "street": "123 Main St",
    "city": "Anytown",
    "state": "CA",
    "zip": "12345"
  },
  "hobbies": ["reading", "traveling", "swimming"]
}

Explicación del Ejemplo

  • _id: Es un identificador único para el documento. MongoDB genera automáticamente este campo si no se proporciona.
  • name, email, age: Campos simples que almacenan datos básicos del usuario.
  • address: Un documento anidado que contiene información de la dirección.
  • hobbies: Un array que almacena una lista de hobbies.

Ejercicio Práctico

Ejercicio 1: Crear un Documento

  1. Objetivo: Crear un documento que represente un libro en una colección llamada books.
  2. Requisitos:
    • El documento debe tener los siguientes campos: title, author, year, genres (array), y available (booleano).

Solución

{
  "title": "To Kill a Mockingbird",
  "author": "Harper Lee",
  "year": 1960,
  "genres": ["Fiction", "Classic"],
  "available": true
}

Retroalimentación

  • Error Común: Olvidar incluir el campo _id. MongoDB lo generará automáticamente si no se proporciona.
  • Consejo: Asegúrate de que los tipos de datos sean correctos (por ejemplo, year debe ser un número, available debe ser un booleano).

Conclusión

En esta lección, hemos aprendido qué es MongoDB, sus características clave y cómo se compara con las bases de datos relacionales tradicionales. También hemos visto un ejemplo práctico de un documento en MongoDB y hemos realizado un ejercicio para reforzar el concepto. En la próxima lección, aprenderemos cómo instalar MongoDB en diferentes sistemas operativos.


Continúa con: Instalando MongoDB

© Copyright 2024. Todos los derechos reservados