Questa pagina descrive Calíope 1.5, la versione che stiamo costruendo adesso. La 1.4 è finita ed è in revisione sull'App Store, e il negozio serve oggi la 1.3 sul Mac e la 1.2 su iPad. Il changelog dice in quale versione è arrivata ogni funzione.

Aggiunge a ogni argomento un pulsante «Apri in Calíope». Funziona solo con l'app installata.

MongoDB

Esplorare collezioni e documenti

Come muoversi tra database, collezioni e documenti di un server MongoDB.

Dove si trova: Workspace › Strumenti › Collezioni

L’esploratore mostra a sinistra le collezioni del database scelto e a destra i suoi documenti, come alberi richiudibili.

Un documento non è una riga: due documenti vicini possono non condividere alcun campo, ed è per questo che non si disegna una griglia di colonne. Accanto a ogni valore compare il suo tipo — ObjectId, decimal128, data, binario — che in un database senza schema è metà dell’informazione.

Per modificare, premi la matita: il documento si apre come JSON esteso e viene salvato per intero, identificato dal suo _id. Senza _id non si può modificare né eliminare, e lo si dice invece di offrire pulsanti che toccherebbero un altro documento. Le viste sono di sola lettura e sono contrassegnate; anche le collezioni limitate lo sono.

Parole chiave: mongodb, collezioni, documenti, bson, json, esplorare

Interrogare e aggregare

Filtri, proiezioni, ordinamento e pipeline di aggregazione.

Dove si trova: Workspace › Strumenti › Query

Lo strumento di query ha due modalità. «Cerca» applica un filtro, una proiezione e un ordine, tutti e tre scritti come documenti JSON. «Aggregazione» esegue una pipeline completa, cioè un elenco di fasi.

I risultati arrivano a pagine: se ne chiedono altri con «Carica altri», e il cursore aperto sul server viene chiuso quando cambia la query — uno abbandonato resta vivo dieci minuti occupando memoria.

Qui i risultati non si modificano: un’aggregazione non ha un documento originale su cui riscrivere le modifiche, e con una proiezione i campi mancanti andrebbero persi al salvataggio. Per modificare c’è l’esploratore.

Parole chiave: mongodb, query, find, aggregazione, pipeline, filtro

Indici di una collezione

Vedere, creare ed eliminare indici, compresi unici, sparsi e con scadenza.

Dove si trova: Workspace › Strumenti › Indici

L’elenco mostra ogni indice con le sue chiavi e proprietà: unico, sparso o con scadenza (TTL).

Quando se ne crea uno, le chiavi si scrivono come documento: 1 crescente, -1 decrescente, e valgono anche «text» o «2dsphere» per indici di testo e spaziali.

L’indice _id non si può eliminare perché lo mantiene il server, quindi non viene offerto il pulsante. Eliminando qualsiasi altro, le query che lo usavano scorreranno l’intera collezione.

Parole chiave: mongodb, indici, unico, ttl, testo, 2dsphere

Stato del server, operazioni e utenti

Ciò che sul lato relazionale sono il pannello, i processi e gli utenti.

Dove si trova: Workspace › Strumenti › Server

Riunisce tre cose che in MongoDB arrivano da tre comandi del server: il suo stato (versione, tempo di attività, connessioni, memoria e operazioni cumulative), le operazioni in corso e gli utenti con i loro ruoli.

Un’operazione si può fermare solo se il server la dichiara interrompibile; per le altre non si offre il pulsante, perché sarebbe promettere qualcosa che non accade.

I ruoli personalizzati appartengono a un database preciso, quindi si elencano quelli del database che stai guardando.

Parole chiave: mongodb, server, operazioni, utenti, ruoli, currentop

Vedere quali operazioni sono state lente

Il profiler di MongoDB: a che livello sta ogni database e cosa ha registrato.

Dove si trova: Workspace › Strumenti › Profiler

Il profiler ha tre livelli: spento, solo le operazioni che superano la soglia, e tutte. La soglia è in millisecondi —non in secondi, come quella di MySQL— e il campionamento, fra 0 e 1, dice quale quota delle lente viene registrata: sotto 1 il server scarta operazioni lente di proposito.

Il livello appartiene a ogni database, non al server. Per questo la barra porta il suo selettore di database e tutto ciò che si legge e si scrive si riferisce a quello scelto. E vive in memoria: riavviando il server torna a quanto dice la sua configurazione di avvio.

Ciò che viene registrato va in «system.profile», una collezione limitata di 1 MB per database: è una finestra sulle ultime operazioni, non uno storico, e i suoi documenti non hanno «_id», quindi si leggono e non si modificano. Svuotarla elimina la collezione, e per farlo bisogna spegnere un momento il profiler: Calíope lo spegne, la elimina e ripristina il livello che c’era.

Non c’è una vista «per istruzione» come nel registro delle query lente relazionale: MongoDB non pubblica un riassunto aggregato per forma di operazione, e calcolarlo nel client su una finestra di 1 MB affermerebbe più di quanto il dato regga.

Su Atlas condiviso e dietro «mongos» i livelli 1 e 2 non si possono impostare: lì il server accetta solo lo 0.

Parole chiave: mongodb, profiler, lente, slowms, system.profile, campionamento

Inviare comandi al server

La via d’uscita per ciò che l’interfaccia non copre.

Dove si trova: Workspace › Strumenti › Comandi

In MongoDB un comando è un documento, e questo strumento lo invia così com’è e mostra la risposta completa.

Copre ciò che nessuna interfaccia fa: convalidare una collezione, chiedere statistiche, spiegare una query o qualsiasi comando amministrativo. Il menu di esempi porta i più frequenti già pronti.

Si sceglie su quale database inviarlo, perché alcuni comandi vengono accettati solo su «admin».

Parole chiave: mongodb, comandi, runcommand, validate, explain, statistiche