MongoDB es una base de datos NoSQL de código abierto que se diferencia de las bases de datos relacionales tradicionales como SQL. En lugar de tablas, filas y columnas, MongoDB organiza los datos en documentos de tipo JSON (JavaScript Object Notation).
Estos documentos son muy flexibles y no requieren un esquema predefinido, lo que permite a los desarrolladores almacenar datos de manera más natural y con estructuras variadas. Piénsalo como una gran colección de carpetas y archivos, donde cada archivo puede tener una estructura distinta sin afectar a los demás.
🗂️ Términos clave:
- Colección: Un grupo de documentos. Es el equivalente a una “tabla” en bases de datos relacionales.
- Documento: Un registro individual. Es el equivalente a una “fila” en bases de datos relacionales.
- Campo: Un par de “clave-valor” dentro de un documento. Es el equivalente a una “columna” en bases de datos relacionales.
Características principales:
- Sin esquema: La estructura de los documentos dentro de una colección puede variar. Esto brinda una gran flexibilidad.
- Escalabilidad horizontal: Puedes distribuir los datos en múltiples servidores para manejar grandes volúmenes de información y un alto tráfico.
- Consultas enriquecidas: Ofrece un lenguaje de consulta potente para buscar, filtrar y agregar datos.
- Replica sets: Copias de los datos en varios servidores para garantizar la alta disponibilidad y la tolerancia a fallos. Si un servidor falla, los otros continúan funcionando.
☁️ ¿Qué es MongoDB Atlas?
MongoDB Atlas es una base de datos como servicio (DBaaS) en la nube para MongoDB. En términos sencillos, es una manera de usar MongoDB sin tener que preocuparte por la instalación, el mantenimiento, la seguridad o la infraestructura del servidor. MongoDB Inc., la compañía detrás de MongoDB, se encarga de todo eso.
Imagina que quieres construir una casa. Usar MongoDB por tu cuenta es como comprar la tierra, los materiales y construirla tú mismo. Usar MongoDB Atlas es como alquilar un apartamento que ya está construido, amueblado y con todos los servicios (luz, agua, seguridad) ya incluidos y gestionados por el propietario.
🚀 Ventajas de usar MongoDB Atlas:
- Fácil de empezar: Puedes crear y desplegar una base de datos en minutos sin necesidad de conocimientos avanzados de infraestructura.
- Totalmente gestionado: Se encarga de la seguridad, el backup, las actualizaciones y el monitoreo, liberando a los desarrolladores de estas tareas.
- Escalabilidad: Puedes escalar tus recursos (CPU, RAM, almacenamiento) de forma sencilla con solo unos clics.
- Multi-nube: Funciona en las principales plataformas de nube como AWS, Google Cloud y Azure, dándote flexibilidad.
- Seguridad: Incluye características de seguridad avanzadas como autenticación, encriptación y firewalls de red.
- Tier Gratuito (Free Tier): Ofrece un plan gratuito para proyectos pequeños o de prueba, lo que lo hace accesible para cualquier persona. .
🛠️ ¿Cómo usar MongoDB Atlas?
Crea una cuenta: Ve al sitio web de MongoDB Atlas y regístrate.
Crea un clúster: Un clúster es un conjunto de servidores que ejecutan tu base de datos.
Configura el clúster:
Elige la nube (AWS, Google Cloud, Azure) y la región que esté más cerca de tus usuarios.
Selecciona un tipo de clúster (el “Free Tier” es el más popular para empezar).
Conéctate: Una vez que el clúster esté listo, Atlas te proporcionará una “cadena de conexión” (connection string). Esta es una URL que tu aplicación usará para conectarse a la base de datos.Ejemplo de cadena de conexión:mongodb+srv://<usuario>:<contraseña>@<nombre-del-cluster>.mongodb.net/<nombre-de-la-base-de-datos>?retryWrites=true&w=majority
Desarrolla: Utiliza los drivers oficiales de MongoDB (bibliotecas de cliente) en tu lenguaje de programación preferido (Node.js, Python, Java, etc.) para interactuar con la base de datos.
const { MongoClient } = require('mongodb');
// La cadena de conexión de tu clúster de Atlas
const uri = "mongodb+srv://<usuario>:<contraseña>@<cluster-nombre>.mongodb.net/?retryWrites=true&w=majority";
const client = new MongoClient(uri);
async function run() {
try {
// Conéctate a la base de datos
await client.connect();
console.log("Conectado exitosamente a MongoDB Atlas!");
// Selecciona una base de datos y una colección
const database = client.db('tienda');
const productos = database.collection('productos');
// Inserta un documento
const doc = { nombre: "Laptop", precio: 1200, stock: 50 };
const resultado = await productos.insertOne(doc);
console.log(`Documento insertado con el id: ${resultado.insertedId}`);
// Busca un documento
const productoEncontrado = await productos.findOne({ nombre: "Laptop" });
console.log("Producto encontrado:", productoEncontrado);
} finally {
// Cierra la conexión
await client.close();
}
}
run().catch(console.dir);
¿Cuál es la diferencia entre MongoDB y MongoDB Atlas?
En qué plataformas de nube principales puede funcionar MongoDB Atlas
¿En qué consiste el sharding y en qué tipo de escenarios sería más útil aplicarlo en lugar de solo escalar verticalmente?
¿Es recomendable usar MongoDB en el desarrollo web?
MongoDB organiza los datos en documentos, a que se refiere?