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.
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.
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.
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.
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.
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.
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».