Esta página describe Calíope 1.5, la versión que estamos construyendo ahora mismo. La 1.4 está terminada y en revisión de App Store, y la tienda sirve hoy la 1.3 en el Mac y la 1.2 en iPad. El changelog dice en qué versión llegó cada función.

Añade un botón «Abrir en Calíope» a cada tema. Sólo funciona con la app instalada.

MongoDB

Explorar colecciones y documentos

Cómo moverse por las bases, colecciones y documentos de un servidor MongoDB.

Dónde está: Espacio de Trabajo › Herramientas › Colecciones

El explorador muestra a la izquierda las colecciones de la base elegida y a la derecha sus documentos, como árboles que se pliegan.

Un documento no es una fila: dos documentos vecinos pueden no compartir ningún campo, y por eso no se dibuja una rejilla de columnas. Junto a cada valor aparece su tipo —ObjectId, decimal128, fecha, binario—, que en una base sin esquema es la mitad de la información.

Para editar, pulsa el lápiz: el documento se abre como JSON extendido y se guarda entero, identificándolo por su _id. Sin _id no se puede editar ni borrar, y así se dice en lugar de ofrecer botones que tocarían otro documento. Las vistas son de solo lectura y se marcan como tales; las colecciones capadas también se señalan.

Palabras clave: mongodb, colecciones, documentos, bson, json, explorar

Consultar y agregar

Filtros, proyecciones, orden y pipelines de agregación.

Dónde está: Espacio de Trabajo › Herramientas › Consulta

La herramienta de consulta tiene dos modos. «Buscar» aplica un filtro, una proyección y un orden, los tres escritos como documentos JSON. «Agregación» ejecuta un pipeline completo, que es una lista de etapas.

Los resultados llegan por páginas: se piden más con «Cargar más», y el cursor abierto en el servidor se cierra al cambiar de consulta —uno abandonado sigue vivo diez minutos ocupando memoria.

Los resultados no se editan aquí: una agregación no tiene documento original al que devolver los cambios, y con una proyección faltarían campos que al guardar se perderían. Para editar está el explorador.

Palabras clave: mongodb, consulta, find, agregación, pipeline, filtro

Índices de una colección

Ver, crear y eliminar índices, incluidos únicos, dispersos y con caducidad.

Dónde está: Espacio de Trabajo › Herramientas › Índices

La lista muestra cada índice con sus claves y sus propiedades: único, disperso o con caducidad (TTL).

Al crear uno, las claves se escriben como un documento: 1 es ascendente, -1 descendente, y también valen «text» o «2dsphere» para índices de texto y espaciales.

El índice de _id no se puede eliminar porque lo mantiene el servidor, así que no se ofrece el botón. Al borrar cualquier otro, las consultas que lo usaban pasan a recorrer la colección entera.

Palabras clave: mongodb, índices, único, ttl, texto, 2dsphere

Estado del servidor, operaciones y usuarios

Lo que en el lado relacional son el panel, los procesos y los usuarios.

Dónde está: Espacio de Trabajo › Herramientas › Servidor

Reúne tres cosas que en MongoDB salen de tres comandos del servidor: su estado (versión, tiempo en marcha, conexiones, memoria y operaciones acumuladas), las operaciones en curso, y los usuarios con sus roles.

Una operación se puede detener sólo si el servidor la declara detenible; para las demás no se ofrece el botón, porque sería prometer algo que no ocurre.

Los roles personalizados pertenecen a una base concreta, así que se listan los de la base que estés mirando.

Palabras clave: mongodb, servidor, operaciones, usuarios, roles, currentop

Ver qué operaciones fueron lentas

El profiler de MongoDB: en qué nivel está cada base y qué ha grabado.

Dónde está: Espacio de Trabajo › Herramientas › Profiler

El profiler tiene tres niveles: apagado, sólo las operaciones que pasan del umbral, y todas. El umbral va en milisegundos —no en segundos, como el de MySQL— y el muestreo, entre 0 y 1, dice qué proporción de las lentas se graba: con menos de 1 el servidor descarta lentas a propósito.

El nivel es de cada base, no del servidor. Por eso la barra lleva su selector de base y todo lo que se lee y se escribe va referido a la elegida. Y vive en memoria: al reiniciar el servidor vuelve a lo que diga su configuración de arranque.

Lo grabado va a «system.profile», una colección capada de 1 MB por base: es una ventana de las últimas operaciones, no un historial, y sus documentos no tienen «_id», así que se leen y no se editan. Vaciarla suelta la colección, y para eso hay que apagar el profiler un momento: Calíope lo apaga, la suelta y devuelve el nivel que había.

No hay vista «por sentencia» como en el registro de consultas lentas relacional: MongoDB no publica un resumen agregado por forma de operación, y calcularlo en el cliente sobre una ventana de 1 MB afirmaría más de lo que el dato aguanta.

En Atlas compartido y detrás de «mongos» no se puede poner el nivel 1 ni el 2: ahí el servidor sólo acepta el 0.

Palabras clave: mongodb, profiler, lentas, slowms, system.profile, muestreo

Enviar comandos al servidor

La salida para lo que la interfaz no cubre.

Dónde está: Espacio de Trabajo › Herramientas › Comandos

En MongoDB un comando es un documento, y esta herramienta lo manda tal cual y enseña la respuesta completa.

Sirve para lo que ninguna interfaz cubre: validar una colección, pedir estadísticas, explicar una consulta o cualquier comando administrativo. El menú de ejemplos trae los más frecuentes ya escritos.

Se elige contra qué base se manda, porque algunos comandos sólo se aceptan en «admin».

Palabras clave: mongodb, comandos, runcommand, validate, explain, estadísticas