Skip to main content

1. MySQL vs MongoDB

ConceptoMySQLMongoDB
Tipo de base de datosRelacional (SQL)No relacional (NoSQL, orientada a documentos)
EstructuraTablas con filas y columnasColecciones con documentos (JSON)
LenguajeSQL (Structured Query Language)BSON (Binary JSON, se consulta con métodos y operadores)
RelacionesUsa JOINs entre tablasSe evitan JOINs; se anidan datos dentro de documentos
EsquemaFijo (hay que definir columnas y tipos de datos)Flexible (cada documento puede tener estructura distinta)

2. Cómo guarda los datos MongoDB

En lugar de tablas, Mongo tiene colecciones. Y en lugar de filas, tiene documentos. Un documento es básicamente un objeto JSON (en realidad BSON, una versión binaria optimizada). Por ejemplo, supongamos que en MySQL tienes una tabla usuarios:
CREATE TABLE usuarios (
  id INT PRIMARY KEY AUTO_INCREMENT,
  nombre VARCHAR(100),
  edad INT,
  direccion VARCHAR(255)
);
En MongoDB, eso se vería así:
{
  _id: ObjectId("671cfd21e4a3f73e6a7b1f23"),
  nombre: "Ana",
  edad: 28,
  direccion: {
    calle: "Av. Siempre Viva 742",
    ciudad: "Springfield"
  }
}
Fíjate que direccion puede ser un objeto anidado, algo que no podrías hacer tan fácilmente en una tabla SQL
  1. Consultar datos en MongoDB
SELECT nombre, edad FROM usuarios WHERE edad > 25;
Mongo usa operadores con $ ($gt = greater than, $lt = less than, etc.).

4. Ventajas de MongoDB

Esquema flexible — puedes cambiar la estructura sobre la marcha. Ideal para datos con forma variable o jerárquica. Escala fácilmente horizontalmente (replicas y shards). Muy útil para aplicaciones con JSON (Node.js, por ejemplo).

5. Desventajas (comparado con MySQL)

No tiene transacciones complejas tan elegantes como SQL (aunque ya soporta multi-document transactions). No es ideal para datos muy estructurados y con muchas relaciones. Menos eficiente en consultas que requieren joins o agregaciones complicadas.

En resumen

  • MySQL = estructura, orden, disciplina.
  • MongoDB = flexibilidad, libertad, caos controlado.

Uso recomendado

Tipo de appMySQLMongoDB
Tienda online clásica⚠️
Chat o mensajería⚠️
Sistema de contabilidad
Red social / foros⚠️
Dashboard en tiempo real⚠️
Blog o CMS moderno⚠️
Sistema bancario
App con estructura cambiante