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