4 min. de lectura (aproximado)

MongoDB desde cero: aprender bases de datos nosql sin programar

(4 min. de lectura) MongoDB se ha convertido en una de las bases de datos más populares del mundo, especialmente entre quienes buscan flexibilidad, escalabilidad y facilidad de uso. A diferencia de las bases de datos relacionales tradicionales, como MySQL o PostgreSQL, MongoDB trabaja con documentos en lugar de tablas y filas. Esto la hace ideal para aplicaciones modernas, prototipos rápidos y proyectos donde la estructura de los datos puede cambiar con el tiempo.
Con MongoDB se puede trabajar desde la consola oficial de MongoDB llamada mongosh o con la herramienta gráfica MongoDB Compass.

Qué es realmente MongoDB?

MongoDB es una base de datos NoSQL orientada a documentos. En lugar de organizar la información en tablas rígidas, guarda los datos en documentos similares a JSON, técnicamente BSON. Esta es la equivalencia más importante que se debe conocer:
  • Una base de datos en MongoDB es equivalente a una base de datos en SQL.
  • Una colección equivale aproximadamente a una tabla.
  • Un documento equivale a una fila o registro.
  • Un campo equivale a una columna.
La gran ventaja es que los documentos de una misma colección no tienen por qué tener exactamente la misma estructura. Se pueden añadir o quitar campos según se necesites, lo que da mucha flexibilidad.

Conectarse a MongoDB

Una vez que MongoDB está instalado y en funcionamiento, abrir una terminal y escribe:

mongosh
Si todo está correcto, se mostraá un mensaje indicando que te has conectado correctamente. A partir de aquí ya se puede empezar a trabajar.

Navegación básica

Estos son los comandos esenciales para moverse por el sistema:
  • "show dbs" → Muestra todas las bases de datos existentes.
  • "use nombre_de_la_base" → Cambia a una base de datos, si no existe, la crea al insertar el primer documento.
  • "show collections" → Lista las colecciones de la base de datos actual.
  • "db" → Indica en qué base de datos con la que se está trabajando en ese momento.
Por ejemplo, para empezar a trabajar con una base de datos de prueba se puede escribir:

use tienda

Crear e insertar datos

Para guardar información utilizar los métodos de inserción.

Insertar un solo documento

db.productos.insertOne({
  nombre: "Portátil",
  precio: 899,
  stock: 15,
  categoria: "Electrónica"
})

Insertar varios documentos a la vez

db.productos.insertMany([
  { nombre: "Ratón", precio: 25, stock: 100, categoria: "Electrónica" },
  { nombre: "Teclado", precio: 45, stock: 50, categoria: "Electrónica" },
  { nombre: "Monitor", precio: 199, stock: 30, categoria: "Electrónica" }
])

Consultar información

La consulta más básica es ver todos los documentos de una colección:

db.productos.find()
Para verlos de forma más legible:

db.productos.find().pretty()
También se pueden filtrar resultados. Por ejemplo, buscar solo los productos de electrónica:

db.productos.find({ categoria: "Electrónica" })
O aplicar condiciones más complejas:

// Productos con precio mayor a 50
db.productos.find({ precio: { $gt: 50 } })

// Productos con stock menor o igual a 30
db.productos.find({ stock: { $lte: 30 } })
Otros operadores muy útiles son "$gte" (mayor o igual), "$lt" (menor que), "$in" (está en un conjunto) y "$or" (condiciones alternativas). Además se puede ordenar y limitar resultados:

db.productos.find().sort({ precio: -1 }).limit(5)

Actualizar y eliminar documentos

Para modificar un documento

db.productos.updateOne(
  { nombre: "Ratón" },
  { $set: { precio: 29 } }
)

Para actualizar varios a la vez

db.productos.updateMany(
  { categoria: "Electrónica" },
  { $inc: { stock: 5 } }
)

Para eliminar

db.productos.deleteOne({ nombre: "Teclado" })
db.productos.deleteMany({ stock: { $lt: 10 } })

Mejorar el rendimiento con índices

Al igual que en las bases de datos relacionales, los índices aceleran las búsquedas. Se puede crear un índice fácilmente:

db.productos.createIndex({ nombre: 1 })
O un índice compuesto:

db.productos.createIndex({ categoria: 1, precio: -1 })

Agregaciones: análisis de datos

MongoDB permite realizar cálculos y resúmenes de datos mediante el pipeline de agregación. Un ejemplo sencillo para obtener el precio medio por categoría sería:

db.productos.aggregate([
  {
$group: {
 _id: "$categoria",
 promedioPrecio: { $avg: "$precio" },
 totalProductos: { $sum: 1 }
}
  }
])