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.
Conectarse a MongoDB
Una vez que MongoDB está instalado y en funcionamiento, abrir una terminal y escribe:mongosh
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.
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()
db.productos.find().pretty()
db.productos.find({ categoria: "Electrónica" })
// 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 } })
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 }
}
}
])
db.productos.createIndex({ nombre: 1 })
db.productos.createIndex({ categoria: 1, precio: -1 })
db.productos.aggregate([
{
$group: {
_id: "$categoria",
promedioPrecio: { $avg: "$precio" },
totalProductos: { $sum: 1 }
}
}
])