MongoDB: Introducción Rápida (10 Minutos)
Key Concepts:
- MongoDB: Base de datos NoSQL orientada a documentos.
- NoSQL: Base de datos no relacional, almacena datos de forma diferente a las bases de datos relacionales.
- Documento: Estructura de datos compuesta por pares campo-valor, similar a un objeto JSON.
- Colección: Agrupación de documentos en MongoDB, equivalente a una tabla en bases de datos relacionales.
- JSON: Formato de intercambio de datos ligero, basado en pares clave-valor.
¿Qué es MongoDB?
MongoDB es una base de datos NoSQL, específicamente una base de datos de documentos, muy popular y de código abierto (versión Community). Está diseñada para aumentar la productividad de los desarrolladores y soportar la escalabilidad.
NoSQL vs. SQL
- NoSQL: Se refiere a bases de datos no relacionales. No almacenan datos en tablas relacionales.
- Relaciones: Las bases de datos NoSQL sí pueden guardar relaciones entre datos, pero no necesitan dividirlos en tablas. Las relaciones pueden estar anidadas en una única estructura.
- Evolución: Las bases de datos NoSQL surgieron a finales de los 2000 debido a la reducción de costos de almacenamiento y al aumento de la cantidad de información no estructurada.
- Ventajas de NoSQL: Permiten almacenar grandes cantidades de información sin estructura, ofreciendo flexibilidad.
Tipos de Bases de Datos NoSQL
- Base de Datos de Documentos: Almacena datos en documentos similares a objetos JSON (MongoDB).
- Base de Datos Clave-Valor: Cada ítem contiene claves y valores (Redis, DynamoDB).
- Base de Datos en Grafo: Almacena datos en forma de nodos y arcos.
- Base de Datos Orientadas a Objetos: Almacena datos en forma de objetos.
MongoDB como Base de Datos Documental
- Documentos: En MongoDB, un registro es un documento, una estructura de datos compuesta por pares campo-valor, similar a objetos JSON. Los valores pueden ser strings, números, booleanos, otros documentos, arrays o arrays de documentos.
- Ventajas de usar documentos:
- Mapeo directo: Un objeto JSON generalmente corresponde a los tipos de datos utilizados en la aplicación (JavaScript, C#, Java, etc.).
- Eliminación de Joins: Almacenar objetos JSON complejos con objetos anidados elimina la necesidad de joins como en SQL.
- Colecciones: MongoDB almacena los documentos en colecciones, que son el equivalente a las tablas en las bases de datos relacionales.
Comandos Básicos de MongoDB
show dbs: Muestra las bases de datos disponibles en el servidor.use <nombre_base_de_datos>: Cambia a la base de datos especificada. Si la base de datos no existe, la crea.db: Muestra la base de datos actual.db.createCollection("<nombre_coleccion>"): Crea una nueva colección.show collections: Muestra las colecciones en la base de datos actual.db.<coleccion>.insertOne(<documento_json>): Inserta un documento en la colección.db.<coleccion>.insertMany([<documento_json_1>, <documento_json_2>, ...]): Inserta múltiples documentos en la colección.db.<coleccion>.find(): Recupera todos los documentos de la colección (equivalente aSELECT * FROM <tabla>en SQL).db.<coleccion>.find().pretty(): Muestra los resultados de la consulta en un formato legible.db.<coleccion>.find({<campo>: <valor>}): Filtra los documentos por un valor específico en un campo.db.<coleccion>.updateOne({<filtro>}, {$set: {<campo>: <nuevo_valor>}}): Actualiza un documento que coincida con el filtro.db.<coleccion>.find({<campo>: <valor>}).limit(<cantidad>): Limita el número de documentos devueltos por la consulta.db.<coleccion>.deleteOne({<filtro>}): Elimina un documento que coincida con el filtro.
Ejemplos Prácticos
- Creación de una base de datos y colección:
use mongoInstant db.createCollection("clients") - Inserción de un cliente (documento):
db.clients.insertOne({ name: "Tony Soprano", age: 52, address: { street: "123 Fake Street", city: "Caldwell" } }) - Inserción de múltiples clientes (documentos):
db.clients.insertMany([ { name: "Rose", age: 35 }, { name: "Sandwich", age: 22 } ]) - Consulta de clientes por nombre:
db.clients.find({ name: "Tony Soprano" }) - Actualización de la edad de un cliente:
db.clients.updateOne({ age: 35 }, { $set: { age: 42 } }) - Eliminación de un cliente por nombre:
db.clients.deleteOne({ name: "Sandwich" })
Conclusión
MongoDB es una base de datos NoSQL de documentos que ofrece flexibilidad y escalabilidad. Su estructura basada en JSON facilita el desarrollo y elimina la necesidad de joins complejos. Los comandos básicos permiten crear, leer, actualizar y eliminar datos de manera eficiente. El video proporciona una introducción práctica a MongoDB, cubriendo los conceptos fundamentales y los comandos esenciales para empezar a trabajar con esta base de datos.
AI summaries can miss context or contain errors. Check important details against the original video.





