2. MongoDB Compass

Compass es un entorno gráfico oficial para MongoDB. Permite:

  • Conectarse a una base de datos local o remota
  • Ver bases de datos y colecciones
  • Visualizar documentos
  • Crear, editar y borrar documentos
  • Crear índices
  • Lanzar agregaciones con interfaz visual
  • Ver estadísticas de la colección (distribuciones, tamaños, etc.)

En esencia, Compass cumple el mismo papel que “phpMyAdmin” en MySQL, pero para MongoDB.


Instalación de MongoDB Compass (Linux/Windows/macOS)

Para clase normalmente recomiendo:

  • Que los alumnos lo instalen en su portátil si lo tienen
  • Si no, instalarlo en el servidor Linux con GUI (si existe) o usar su PC personal

Descarga oficial

https://www.mongodb.com/try/download/compass

Ir a:

Seleccionar:

  • Versión estable
  • Sistema operativo correspondiente

Instalar siguiendo el asistente.


Configuración inicial en clase

Antes de abrir Compass, asegúrate de que el servidor MongoDB ya está corriendo en Linux:

sudo systemctl status mongod

Y que el puerto por defecto (27017) está accesible en la red del aula.

Si usan Compass desde sus ordenadores:

  • Conexión dentro de la misma LAN del aula → bien
  • Si hay cortafuegos, abrir el puerto 27017
  • Si es SSH, configurar túnel (lo explico más abajo opcionalmente)

Conexión desde Compass (práctica guiada sencilla)

Abrir Compass → aparecerá pantalla con Connection String.

Por defecto la cadena es:

mongodb://localhost:27017

Casos:

Caso A: Compass instalado en el servidor

Usar:

mongodb://localhost:27017

Clic Connect.

Caso B: Compass desde portátil del alumno

Si conocen la IP del servidor:

mongodb://IP_DEL_SERVIDOR:27017

Ejemplo:

mongodb://192.168.0.50:27017

Para realizar conexiones remotas debemos cambiar la configuración del archivo mongod.conf

sudo nano /etc/mongod.conf

y cambiar el 127.0.0.1 por 0.0.0.

Clic Connect.

Si la conexión funciona, aparecen las bases de datos.


Exploración visual de datos (lo que deben observar)

Una vez dentro:

  1. Sección izquierda: lista de bases de datos
  2. Seleccionar andoria_sector (o la que crearon antes)
  3. Seleccionar colección planetas

Ahora verán documentos tipo:

{
  "_id": ObjectId("..."),
  "nombre": "Andoria",
  "especie_principal": "Andoriano",
  ...
}

Aquí ya puedes hacer mini demostración:

  • Ordenar por campo
  • Editar un documento (botón Edit Document)
  • Añadir nuevos campos manualmente
  • Borrar un documento desde la interfaz

Esto consolida el concepto “un documento no necesita la misma estructura en todos los registros”.


Agregaciones visuales (el jugo interesante)

Compass tiene una sección llamada Aggregations:

  • Clic en Aggregations
  • Crear un pipeline con $match
  • Ejemplo:
{ "$match": { "alineacion": "Federación" } }

Esto muestra solo planetas federados.

Si quieres mostrarles algo más vistoso:

  • $group por alineacion
  • $sort descendente por conteo

El pipeline sería:

[
  { "$group": { "_id": "$alineacion", "total": { "$sum": 1 } } },
  { "$sort": { "total": -1 } }
]

Esto es excelente para enseñar que MongoDB es más “analítico” que un simple CRUD.


Índices

Compass → pestaña Indexes

Allí puedes:

  • Ver índices existentes
  • Crear uno nuevo desde GUI

Por ejemplo, crear índice en nombre:

  • Clic Create Index
  • Campo: nombre
  • Orden: Ascending
  • Crear

Esto deja caer la idea de rendimiento sin entrar en ingeniería pesada.


Estadísticas de colección

Compass tiene una pestaña Schema que permite:

  • Inferir estructura de documentos
  • Detectar tipos
  • Ver distribuciones

Ejemplo: podrían ver que clima es “Frío”, “Ártico”, etc.
Visualmente ayuda a entender diversidad de documentos.


Práctica Guiada: “Exploración Visual de Datos con MongoDB Compass”

La USS Horizon ha completado su instalación del núcleo MongoDB en la sala de máquinas. Ahora la Sección de Ciencia quiere que los oficiales accedan a los registros desde una interfaz visual que permita agrupar, filtrar y entender datos sin necesidad de abrir un terminal. Te han asignado la operación.


FASE 1 — Preparar la Conexión desde Compass

Tu estación de trabajo local será el cliente de monitorización. Antes de iniciar la misión:

  1. Asegúrate de que MongoDB está activo en el servidor de la nave:
sudo systemctl status mongod
  1. Si estás en el mismo equipo donde instalaste MongoDB, podrás conectarte con localhost.
  2. Si estás desde otro equipo del aula, necesitas la IP del servidor de la nave (por ejemplo 192.168.0.50).

Abre MongoDB Compass y en el campo de conexión escribe:

Para conexión local:

mongodb://localhost:27017

Para conexión remota en la red de aula:

mongodb://IP_DEL_SERVIDOR:27017

Pulsa Connect. Si todo va bien, deberías ver una lista de bases de datos en la barra lateral izquierda. Bienvenido al puente de mando.


FASE 2 — Exploración de la Biblioteca de Datos

Al conectarte, Compass mostrará un conjunto de bases predeterminadas del sistema.

Tu tarea inicial consiste en crear una estructura nueva que represente planetas registrados por la Federación.

  1. Dirígete al botón de Create database
  2. Nombre de la base de datos: fed_records
  3. Nombre de la colección inicial: planets
  4. Clic en Create

Acabas de crear un archivo científico dentro de la Biblioteca Estelar.


FASE 3 — Inserción de Datos Científicos

Ahora toca poblar la colección con datos reales que los sensores ya capturaron.
Compass permite insertar datos con un editor visual.

Abre la colección planets y pulsa Insert Document.

Aparece un editor con un documento JSON. Rellénalo con:

{
  "name": "Vulcan",
  "species": "Vulcans",
  "affiliation": "Federation",
  "warp_capable": true
}

Pulsa Insert para guardar.

Agrega un segundo documento pero esta vez usando Insert Document y cambia el contenido:

{
  "name": "Qo'noS",
  "species": "Klingons",
  "affiliation": "Klingon Empire",
  "warp_capable": true
}

Inserta un tercero:

{
  "name": "Ferenginar",
  "species": "Ferengi",
  "affiliation": "Ferengi Alliance",
  "warp_capable": true
}

Fíjate en un detalle interesante: no hay esquema rígido. MongoDB no te obliga a declarar columnas antes. Es como una biblioteca que acepta libros sin exigir número exacto de capítulos.


FASE 4 — Visualización y Edición de Documentos

Observa cómo Compass representa cada documento con su _id. Esa key es asignada automáticamente y sirve como identificador universal.

Ahora haz dos pruebas:

  1. Edita un documento desde el icono Edit Document
    Cambia warp_capable de true a false en algún planeta no confirmado. Guarda y comprueba que Compass valida el JSON.
  2. Elimina un planeta usando el botón Delete para simular que los registros debieron ser clasificadas tras un fallo diplomático.

Nadie en la Flota se escapa del poder del botón Delete.


FASE 5 — Consultas Visuales con Filtros

La Sección de Ciencia quiere consultar todos los planetas bajo Federation.
Compass lo hace sin comandos: usa el buscador superior.

Pulsa el filtro visual y escribe:

{ "affiliation": "Federation" }

Pulsa Apply.

Si el universo está en orden, solo aparecerán planetas pertenecientes a la Federación.


FASE 6 — Agregaciones en la Sala de Análisis

Compass dispone de un módulo llamado Aggregations que permite crear pipelines de análisis (equivalente a map–reduce ligero).

Entra en Aggregations y añade una etapa $group:

{
  "$group": {
    "_id": "$affiliation",
    "total": { "$sum": 1 }
  }
}

Pulsa Run.

Compass mostrará un resultado parecido a una estadística diplomática:

Federation: 1
Klingon Empire: 1
Ferengi Alliance: 1

Este tipo de vista enseña que MongoDB no solo guarda datos, también los procesa de forma analítica.


FASE 7 — Inferir Esquemas

Entra en la pestaña Schema dentro de la colección.

Compass examinará los documentos e inferirá:

  • Tipos de campos
  • Frecuencia de aparición
  • Valores más comunes

Esto simula cómo la Sección de Xenobiología analiza patrones entre especies sin necesidad de preguntar “¿cuál es la estructura del registro?”.


FASE 8 — Crear Índices

Ahora ve a la pestaña Indexes para crear un índice sobre el campo name.

Pulsa Create Index y configura:

  • Field: name
  • Sort: Ascending

Clic en Create.

MongoDB construirá el índice internamente. Tu planeta ahora se encuentra más rápido cuando alguien lo necesita. Rendimiento y diplomacia se dan la mano.


FASE 9 — Desconexión y Cierre de Misión

Cierra Compass.
Detén el servicio MongoDB solo si el servidor necesita entrar en modo sigilo:

sudo systemctl stop mongod

La misión Compass se considera cumplida si has conseguido:

  • Conectarse a una instancia MongoDB
  • Crear bases de datos y colecciones desde GUI
  • Insertar y editar documentos
  • Filtrar visualmente