Cette page décrit Calíope 1.5, la version que nous construisons en ce moment. La 1.4 est terminée et en cours d'examen par Apple, et la boutique propose aujourd'hui la 1.3 sur le Mac et la 1.2 sur iPad. Le changelog indique dans quelle version chaque fonction est arrivée.
Ajoute un bouton « Ouvrir dans Calíope » à chaque sujet. Ne fonctionne qu'avec l'app installée.
Comment naviguer dans les bases, collections et documents d’un serveur MongoDB.
Où le trouver : Espace de travail › Outils › Collections
L’explorateur affiche à gauche les collections de la base choisie et à droite leurs documents, sous forme d’arbres repliables.
Un document n’est pas une ligne : deux documents voisins peuvent ne partager aucun champ, d’où l’absence de grille de colonnes. À côté de chaque valeur figure son type — ObjectId, decimal128, date, binaire — ce qui, dans une base sans schéma, représente la moitié de l’information.
Pour modifier, appuyez sur le crayon : le document s’ouvre en JSON étendu et il est enregistré en entier, identifié par son _id. Sans _id, il ne peut être ni modifié ni supprimé, et cela est indiqué au lieu de proposer des boutons qui toucheraient un autre document. Les vues sont en lecture seule et signalées comme telles ; les collections plafonnées le sont aussi.
Filtres, projections, tri et pipelines d’agrégation.
Où le trouver : Espace de travail › Outils › Requête
L’outil de requête a deux modes. « Rechercher » applique un filtre, une projection et un tri, tous trois écrits comme des documents JSON. « Agrégation » exécute un pipeline complet, c’est-à-dire une liste d’étapes.
Les résultats arrivent par pages : demandez-en davantage avec « Charger plus » ; le curseur ouvert côté serveur est fermé au changement de requête — abandonné, il reste vivant dix minutes en occupant de la mémoire.
Les résultats ne se modifient pas ici : une agrégation n’a pas de document d’origine où réécrire les changements, et avec une projection les champs absents seraient perdus à l’enregistrement. Pour modifier, utilisez l’explorateur.
Voir, créer et supprimer des index, y compris uniques, clairsemés et à expiration.
Où le trouver : Espace de travail › Outils › Index
La liste montre chaque index avec ses clés et ses propriétés : unique, clairsemé ou avec expiration (TTL).
À la création, les clés s’écrivent comme un document : 1 pour croissant, -1 pour décroissant, et « text » ou « 2dsphere » sont acceptés pour les index de texte et géospatiaux.
L’index _id ne peut pas être supprimé car le serveur le maintient : aucun bouton n’est proposé. Supprimer un autre index oblige les requêtes qui l’utilisaient à parcourir toute la collection.
Ce qui, côté relationnel, correspond au tableau de bord, aux processus et aux utilisateurs.
Où le trouver : Espace de travail › Outils › Serveur
Cet outil réunit trois choses qui, sous MongoDB, proviennent de trois commandes du serveur : son état (version, durée de fonctionnement, connexions, mémoire et opérations cumulées), les opérations en cours, et les utilisateurs avec leurs rôles.
Une opération ne peut être arrêtée que si le serveur la déclare interruptible ; pour les autres, aucun bouton n’est proposé, car ce serait promettre ce qui n’arrive pas.
Les rôles personnalisés appartiennent à une base précise : ceux qui s’affichent sont donc ceux de la base que vous consultez.
Le profileur MongoDB : à quel niveau se trouve chaque base et ce qu’il a enregistré.
Où le trouver : Espace de travail › Outils › Profileur
Le profileur a trois niveaux : éteint, seulement les opérations qui dépassent le seuil, et toutes. Le seuil est en millisecondes —pas en secondes, comme celui de MySQL— et l’échantillonnage, entre 0 et 1, indique quelle proportion des lentes est enregistrée : en dessous de 1, le serveur écarte des opérations lentes à dessein.
Le niveau appartient à chaque base, pas au serveur. C’est pourquoi la barre porte son sélecteur de base et tout ce qui est lu et écrit se rapporte à celle qui est choisie. Et il vit en mémoire : un redémarrage du serveur le ramène à ce que dit sa configuration de démarrage.
Ce qui est enregistré va dans « system.profile », une collection plafonnée de 1 Mo par base : c’est une fenêtre sur les dernières opérations, pas un historique, et ses documents n’ont pas d’« _id », donc ils se lisent et ne s’éditent pas. La vider supprime la collection, et cela demande d’éteindre un instant le profileur : Calíope l’éteint, la supprime et rétablit le niveau qui était là.
Il n’y a pas de vue « par instruction » comme dans le journal des requêtes lentes relationnel : MongoDB ne publie aucun résumé agrégé par forme d’opération, et le calculer côté client sur une fenêtre de 1 Mo affirmerait plus que la donnée ne le permet.
Sur Atlas partagé et derrière « mongos », les niveaux 1 et 2 ne peuvent pas être réglés : là, le serveur n’accepte que 0.
La porte de sortie pour ce que l’interface ne couvre pas.
Où le trouver : Espace de travail › Outils › Commandes
Sous MongoDB, une commande est un document : cet outil l’envoie telle quelle et affiche la réponse complète.
Il couvre ce qu’aucune interface ne fait : valider une collection, demander des statistiques, expliquer une requête ou toute commande d’administration. Le menu d’exemples propose les plus fréquentes, déjà écrites.
Vous choisissez la base de destination, car certaines commandes ne sont acceptées que sur « admin ».