MONGODB DESDE CERO: APRENDER BASES DE DATOS NOSQL SIN PROGRAMAR
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 }
}
}
])