Diese Seite beschreibt Calíope 1.5, die Version, die wir gerade bauen. Die 1.4 ist fertig und in der App-Review, und der Store liefert heute 1.3 auf dem Mac und 1.2 auf dem iPad. Das Changelog sagt, in welcher Version jede Funktion kam.
Fügt jedem Thema einen Button „In Calíope öffnen“ hinzu. Funktioniert nur mit installierter App.
Wie man sich durch Datenbanken, Sammlungen und Dokumente eines MongoDB-Servers bewegt.
Wo es zu finden ist: Workspace › Werkzeuge › Sammlungen
Der Browser zeigt links die Sammlungen der gewählten Datenbank und rechts deren Dokumente, als zusammenklappbare Bäume.
Ein Dokument ist keine Zeile: Zwei benachbarte Dokumente können kein einziges Feld gemeinsam haben — deshalb gibt es kein Spaltenraster. Neben jedem Wert steht sein Typ — ObjectId, decimal128, Datum, Binärdaten —, was in einer schemalosen Datenbank die halbe Information ist.
Zum Bearbeiten auf den Stift tippen: Das Dokument öffnet sich als erweitertes JSON und wird als Ganzes gespeichert, identifiziert über seine _id. Ohne _id lässt es sich weder bearbeiten noch löschen, und das wird gesagt, statt Schaltflächen anzubieten, die ein anderes Dokument treffen würden. Sichten sind schreibgeschützt und als solche markiert; begrenzte Sammlungen ebenfalls.
Filter, Projektionen, Sortierung und Aggregations-Pipelines.
Wo es zu finden ist: Workspace › Werkzeuge › Abfrage
Die Abfrage hat zwei Modi. „Suchen“ wendet Filter, Projektion und Sortierung an, alle drei als JSON-Dokumente geschrieben. „Aggregation“ führt eine vollständige Pipeline aus, also eine Liste von Stufen.
Ergebnisse kommen seitenweise: Mit „Mehr laden“ werden weitere angefordert, und der offene Cursor auf dem Server wird beim Wechsel der Abfrage geschlossen — ein verlassener Cursor lebt zehn Minuten weiter und belegt Speicher.
Hier wird nicht bearbeitet: Eine Aggregation hat kein Ursprungsdokument, in das Änderungen zurückgeschrieben werden könnten, und bei einer Projektion gingen die fehlenden Felder beim Speichern verloren. Zum Bearbeiten dient der Browser.
Indizes ansehen, anlegen und löschen — auch eindeutige, dünn besetzte und ablaufende.
Wo es zu finden ist: Workspace › Werkzeuge › Indizes
Die Liste zeigt jeden Index mit seinen Schlüsseln und Eigenschaften: eindeutig, dünn besetzt oder mit Ablauf (TTL).
Beim Anlegen werden die Schlüssel als Dokument geschrieben: 1 aufsteigend, -1 absteigend; für Text- und Geo-Indizes gelten auch „text“ und „2dsphere“.
Der _id-Index lässt sich nicht löschen, weil der Server ihn pflegt — deshalb wird keine Schaltfläche angeboten. Wird ein anderer gelöscht, durchsuchen die Abfragen, die ihn nutzten, künftig die ganze Sammlung.
Was auf der relationalen Seite Übersicht, Prozessliste und Benutzer sind.
Wo es zu finden ist: Workspace › Werkzeuge › Server
Hier kommen drei Dinge zusammen, die in MongoDB aus drei Serverbefehlen stammen: der Status (Version, Laufzeit, Verbindungen, Speicher und kumulierte Vorgänge), die laufenden Vorgänge und die Benutzer mit ihren Rollen.
Ein Vorgang lässt sich nur stoppen, wenn der Server ihn als stoppbar meldet; für die übrigen wird keine Schaltfläche angeboten, weil das etwas versprechen würde, was nicht eintritt.
Eigene Rollen gehören zu einer bestimmten Datenbank; aufgelistet werden daher die der Datenbank, die Sie gerade ansehen.
Der MongoDB-Profiler: auf welcher Stufe jede Datenbank steht und was er aufgezeichnet hat.
Wo es zu finden ist: Workspace › Werkzeuge › Profiler
Der Profiler hat drei Stufen: aus, nur die Vorgänge über dem Schwellwert, und alle. Der Schwellwert steht in Millisekunden —nicht in Sekunden wie bei MySQL— und die Abtastrate zwischen 0 und 1 sagt, welcher Anteil der langsamen Vorgänge aufgezeichnet wird: unter 1 verwirft der Server langsame Vorgänge absichtlich.
Die Stufe gehört zu jeder Datenbank, nicht zum Server. Deshalb trägt die Leiste ihre Datenbankauswahl, und alles Gelesene und Geschriebene bezieht sich auf die gewählte. Und sie liegt im Speicher: ein Neustart des Servers setzt sie auf das zurück, was seine Startkonfiguration sagt.
Das Aufgezeichnete landet in „system.profile“, einer begrenzten Sammlung von 1 MB je Datenbank: ein Fenster auf die letzten Vorgänge, keine Historie, und ihre Dokumente haben kein „_id“, werden also gelesen und nicht bearbeitet. Sie zu leeren bedeutet, die Sammlung zu verwerfen, und dafür muss der Profiler kurz aus sein: Calíope schaltet ihn aus, verwirft sie und stellt die vorherige Stufe wieder her.
Es gibt keine Ansicht „nach Anweisung“ wie im relationalen Protokoll langsamer Abfragen: MongoDB veröffentlicht keine aggregierte Zusammenfassung nach Vorgangsform, und sie im Client über ein 1-MB-Fenster zu berechnen würde mehr behaupten, als die Daten tragen.
In geteiltem Atlas und hinter „mongos“ lassen sich Stufe 1 und 2 nicht setzen: dort nimmt der Server nur 0 an.
Der Ausweg für alles, was die Oberfläche nicht abdeckt.
Wo es zu finden ist: Workspace › Werkzeuge › Befehle
In MongoDB ist ein Befehl ein Dokument: Dieses Werkzeug schickt ihn unverändert und zeigt die vollständige Antwort.
Es deckt ab, was keine Oberfläche leistet: eine Sammlung prüfen, Statistiken abrufen, eine Abfrage erklären oder jeden Administrationsbefehl. Das Beispielmenü bringt die häufigsten fertig mit.
Sie wählen die Zieldatenbank, denn manche Befehle werden nur auf „admin“ angenommen.