1. MySQL vs MongoDB
| Concepto | MySQL | MongoDB |
|---|---|---|
| Tipo de base de datos | Relacional (SQL) | No relacional (NoSQL, orientada a documentos) |
| Estructura | Tablas con filas y columnas | Colecciones con documentos (JSON) |
| Lenguaje | SQL (Structured Query Language) | BSON (Binary JSON, se consulta con métodos y operadores) |
| Relaciones | Usa JOINs entre tablas | Se evitan JOINs; se anidan datos dentro de documentos |
| Esquema | Fijo (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 tablausuarios:
direccion puede ser un objeto anidado, algo que no podrías hacer tan fácilmente en una tabla SQL
- Consultar datos en MongoDB
$ ($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 app | MySQL | MongoDB |
|---|---|---|
| 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 | ❌ | ✅ |