Compass vous accueillera avec un écran de bienvenue :
Maintenant que vous avez installé MongoDB Compass sur votre machine locale, vous pouvez le
connecter à l'instance MongoDB exécutée sur votre serveur distant.
Étape 2 — Connexion au serveur MongoDB
Pour utiliser MongoDB Compass avec l'instance MongoDB exécutée sur votre serveur distant, vous
devez d'abord vous y connecter comme si vous accédiez à la base de données via le shell. En
supposant que vous ayez terminé le didacticiel prérequis sur Comment configurer l'accès à distance
pour MongoDB sur Ubuntu 20.04 , vous aurez déjà configuré votre serveur MongoDB pour autoriser
les connexions à distance depuis votre machine locale.
Compass vous permet de vous connecter soit en utilisant une chaîne de connexion (une seule ligne de
texte contenant toutes les informations de connexion à la base de données nécessaires), soit en
remplissant tous les détails de connexion individuellement. Ce guide décrit comment se connecter en
utilisant la deuxième option, mais si vous souhaitez apprendre à construire une chaîne de connexion,
nous vous encourageons à consulter la documentation officielle sur le sujet .
Cliquez sur Remplir les champs de connexion individuellement en haut de l'écran d'accueil. L'
écran Nouvelle connexion apparaît avec une liste de champs vides :
Saisissez l'adresse IP du serveur distant sur lequel votre instance MongoDB s'exécute dans
le champ Nom d'hôte . Laissez la valeur Port par défaut , sauf si vous avez modifié le port sur lequel
votre instance MongoDB écoute les connexions. Étant donné que le serveur a été sécurisé avec
l'authentification activée, vous devez également définir l' option Authentification sur Nom
d'utilisateur / Mot de passe . Après avoir sélectionné cette option, saisissez le nom d'utilisateur de
votre utilisateur administratif MongoDB, le mot de passe associé à ce compte et la base de données
d'authentification de cet utilisateur dans les trois nouveaux champs.
Après avoir cliqué sur le bouton Connecter , Compass tentera de se connecter à l'instance MongoDB.
Si cela réussit, vous serez redirigé vers l'écran d'accueil affichant la liste de toutes les bases de
données de l'instance. Elles apparaîtront également dans le panneau de gauche avec des
informations de haut niveau telles que l'adresse IP du serveur de base de données et la version de
MongoDB qu'il exécute :
Si la tentative de connexion échoue, assurez-vous d'avoir correctement saisi tous les détails de
connexion.
Une fois que vous avez connecté avec succès votre installation Compass locale à votre instance de
serveur MongoDB distante, vous pouvez passer à la création d'une nouvelle base de données de test
et à l'insertion de données de test dans une nouvelle collection.
Étape 3 — Préparation des données de test
Pour illustrer les différentes fonctionnalités de MongoDB Compass, ce guide utilisera un ensemble
d'exemples de documents dans ses exemples. Cette étape consiste à créer une collection et à y
insérer cet ensemble d'exemples de données.
Cette collection d'échantillons contient des documents représentant les vingt villes les plus peuplées
du monde. Un exemple de document pour Tokyo suivra cette structure :
Exemple de document représentant Tokyo
"name": "Tokyo",
"country": "Japan",
"continent": "Asia",
"population": 37.400
Copie
Le document contient des informations sur le nom de la ville, le pays où elle se situe, le continent et
sa population exprimée en millions. Ce guide nommera la base de données d'exemple populationset
la collection qui stockera les documents s'appellera cities.
Pour commencer, cliquez sur le bouton CRÉER UNE BASE DE DONNÉES en haut de l'écran d'accueil.
Vous pouvez également cliquer sur le signe plus ( + ) en bas du panneau de gauche.
Dans MongoDB, une base de données et une collection sont généralement créées lorsque le premier
document est inséré dans la collection sans qu'il soit nécessaire de procéder à une opération de
création explicite pour ces structures. Cependant, il est possible de créer une nouvelle base de
données de manière explicite et c'est ainsi que vous le ferez dans MongoDB Compass dans ce
tutoriel.
Tapez populationsdans le champ Nom de la base de donnéescities et dans le champ Nom de la
collection , en laissant tous les autres champs avec leurs valeurs par défaut, puis cliquez sur Créer
une base de données :
Compass va créer la base de données. Cliquez sur la populationsbase de données pour accéder à la
vue de la base de données. Cliquez ensuite citiespour accéder à la vue de la collection vide :
Maintenant que la base de données et la collection ont été créées, vous pouvez insérer une liste de
documents non triés dans la citiescollection. Cliquez sur le bouton AJOUTER DES DONNÉES , puis
sélectionnez l' option Insérer un document .
Une fenêtre apparaît dans laquelle vous pouvez saisir un ou plusieurs documents de données, au
format JSON, comme vous le feriez avec la commande shell. Saisissez l'ensemble de documents
suivant dans le champ, en remplaçant tout contenu présent par défaut :
{"name": "Seoul", "country": "South Korea", "continent": "Asia", "population": 25.674 },
{"name": "Mumbai", "country": "India", "continent": "Asia", "population": 19.980 },
{"name": "Lagos", "country": "Nigeria", "continent": "Africa", "population": 13.463 },
{"name": "Beijing", "country": "China", "continent": "Asia", "population": 19.618 },
{"name": "Shanghai", "country": "China", "continent": "Asia", "population": 25.582 },
{"name": "Osaka", "country": "Japan", "continent": "Asia", "population": 19.281 },
{"name": "Cairo", "country": "Egypt", "continent": "Africa", "population": 20.076 },
{"name": "Tokyo", "country": "Japan", "continent": "Asia", "population": 37.400 },
{"name": "Karachi", "country": "Pakistan", "continent": "Asia", "population": 15.400 },
{"name": "Dhaka", "country": "Bangladesh", "continent": "Asia", "population": 19.578 },
{"name": "Rio de Janeiro", "country": "Brazil", "continent": "South America", "population": 13.293 },
{"name": "São Paulo", "country": "Brazil", "continent": "South America", "population": 21.650 },
{"name": "Mexico City", "country": "Mexico", "continent": "North America", "population": 21.581 },
{"name": "Delhi", "country": "India", "continent": "Asia", "population": 28.514 },
{"name": "Buenos Aires", "country": "Argentina", "continent": "South America", "population":
14.967 },
{"name": "Kolkata", "country": "India", "continent": "Asia", "population": 14.681 },
{"name": "New York", "country": "United States", "continent": "North America", "population":
18.819 },
{"name": "Manila", "country": "Philippines", "continent": "Asia", "population": 13.482 },
{"name": "Chongqing", "country": "China", "continent": "Asia", "population": 14.838 },
{"name": "Istanbul", "country": "Turkey", "continent": "Europe", "population": 14.751 }
Copie
Cliquez sur le bouton INSÉRER et Compass insérera la liste des documents, puis les affichera
automatiquement dans le navigateur de collection :
Vous avez ainsi réussi à créer un ensemble d'exemples de documents représentant les villes les plus
peuplées du monde. Cette collection servira de données d'exemple pour ce guide lorsque vous
explorerez MongoDB Compass. Vous apprendrez ensuite à parcourir les données avec l'interface
graphique.
Étape 4 — Parcourir et filtrer les données
MongoDB Compass est un outil pratique pour parcourir les données stockées dans une base de
données MongoDB via une interface graphique. Il élimine le fardeau de devoir mémoriser les noms
de bases de données ou de collections obscures, et vous pouvez accéder à n'importe quelle base de
données ou collection sur votre serveur MongoDB en quelques clics.
L'outil de navigation principal de Compass est le panneau de gauche, qui fonctionne comme un arbre
affichant le contenu de la base de données. Les nœuds de niveau supérieur sont les bases de
données, sur lesquelles vous pouvez cliquer pour afficher la liste des collections disponibles.
Pour accéder à la citiescollection que vous avez créée à l'étape précédente, cliquez sur
le populationsnom de la base de données et une liste de toutes les collections qu'elle contient
apparaîtra. Après avoir préparé les données de test, une seule collection sera disponible. En cliquant
sur le nom de la collection, vous chargez l'écran du navigateur de données.
Par défaut, Compass affiche les 20 premiers résultats non filtrés renvoyés par une requête vide sur la
collection sélectionnée. À droite du bouton AJOUTER DES DONNÉES que vous avez utilisé à l'étape
précédente, vous trouverez une section Affichage avec trois modes d'affichage distincts parmi
lesquels vous pouvez choisir :
• Affichage en liste : affichage par défaut affichant les documents sous forme de paires clé-
valeur affichées une par une. Ce mode d'affichage ressemble au format de document JSON,
mais sa coloration syntaxique et ses fonctionnalités d'interface supplémentaires, telles que
les documents imbriqués réductibles, contribuent à le rendre plus lisible :
• Vue JSON : cette vue montre la structure réelle du document telle que représentée en JSON :
• Vue tableau : affichage des données dans une interface tabulaire, similaire à celle que l'on
trouve dans les bases de données relationnelles. Cela peut être pratique si les documents
suivent une structure plate bien définie, mais n'est pas aussi lisible lorsque des documents ou
des tableaux intégrés apparaissent dans les documents :
Quelle que soit la vue que vous utilisez, vous pouvez utiliser l'écran du navigateur de données pour
interroger rapidement vos données, comme vous le feriez avec la find()méthode dans le shell
MongoDB. Par exemple, vous pouvez interroger votre collection pour trouver tous les documents
représentant des villes d'Amérique du Nord en exécutant l'opération suivante dans le shell
MongoDB :
1. [Link]({ "continent": "North America" })
2.
Copie
Dans cette find()méthode, { "continent": "North America" }il s'agit du document de requête . Il s'agit
de la partie de la commande qui indique à MongoDB comment filtrer les données. De même, vous
pouvez saisir ce document, ou tout autre document de requête, dans le champ FILTER de MongoDB
Compass en haut de la fenêtre de collecte pour filtrer vos données.
Allez-y et entrez ce document de requête dans le champ FILTRE , puis appuyez sur RECHERCHER :
{ "continent": "North America" }
Copie
MongoDB Compass va restreindre la liste des documents aux deux entrées correspondant aux
critères de filtrage. Vous pouvez utiliser n'importe quel document de requête valide que vous
utiliseriez dans une find()commande pour filtrer la date dans le champ FILTER . Si vous faites une
erreur de syntaxe, Compass va transformer le badge FILTER en rouge, indiquant qu'il y a un problème
avec la requête.
Vous pouvez également trier les résultats et appliquer des projections pour renvoyer uniquement un
sous-ensemble limité de champs à l'aide de l'interface du navigateur de données. Cliquez sur le
bouton OPTIONS près de la barre de requête de filtrage pour afficher d'autres options. Les
champs PROJET et TRIER apparaîtront sous le champ FILTRE . Un certain nombre d'autres champs
apparaîtront également, mais il serait hors de portée de ce guide de les décrire tous en détail.
Les champs PROJECT et SORT acceptent les mêmes documents que ceux que vous transmettriez aux
méthodes find()et sort()dans le shell. Par exemple, essayez de limiter les champs renvoyés pour
afficher uniquement le nom de la ville et la population, puis de trier les résultats par ordre croissant
de population.
Pour limiter la liste des champs à nameet population, ajoutez le document de projection suivant au
champ PROJET :
{ "_id": 0, "name": 1, "population": 1 }
Copie
Pour trier la liste par population dans l'ordre croissant, ajoutez le document de tri suivant au
champ TRIER :
{ "population": 1 }
Copie
Cliquez à nouveau sur le bouton RECHERCHER pour appliquer ces documents de projection et de tri :
Compass affiche désormais deux documents simplifiés représentant New York et Mexico. Les
résultats sont équivalents à l'exécution de la requête suivante dans le shell MongoDB :
1. [Link](
2.
3. { "continent": "North America" },
4.
5. { "_id": 0, "name": 1, "population": 1 }
6.
7. ).sort(
8.
9. { "population": 1 }
10.
11. )
12.
Copie
Tout comme avec les documents de requête de filtre, les erreurs de syntaxe dans les paramètres de
projection et de tri entraîneront la coloration en rouge de l'étiquette du champ correspondant, ce qui
facilitera la détection en cas de problème.
Pour effacer le filtre, la projection et le tri des documents que vous avez appliqués, vous pouvez
cliquer sur le bouton RÉINITIALISER .
Remarque : à l'aide du navigateur de données, vous pouvez également modifier le contenu d'un
document individuel. Dans la vue Liste, passez votre curseur sur un document de la liste et cliquez sur
l'icône en forme de crayon dans le menu contextuel qui apparaît :
L'affichage statique se transformera en liste de champs modifiables que vous pourrez modifier
librement pour modifier rapidement le document :
Après avoir effectué les modifications souhaitées, cliquez sur le bouton METTRE À JOUR et elles
seront écrites dans la base de données.
Étape 5 — Utilisation du générateur de pipeline d'agrégation interactif
Le générateur de pipeline d'agrégation de Compass est un outil graphique qui facilite la création de
pipelines d'agrégation en plusieurs étapes. Cette étape explique comment créer un pipeline en
ajoutant des étapes d'agrégation séquentielles.
Remarque : l'exemple de cette étape suit le pipeline d'agrégation du didacticiel Comment utiliser les
agrégations qui utilise des données de test similaires. Si vous n'êtes pas familier avec les pipelines
d'agrégation, vous pouvez suivre ce didacticiel pour en savoir plus sur leurs principes.
À titre d'exemple, supposons que la tâche à accomplir consiste à répertorier les villes les plus
peuplées des pays représentés dans la collection, mais uniquement celles qui se trouvent en Asie et
en Amérique du Nord. Le pipeline ne doit renvoyer que les noms et les populations des villes. Les
résultats doivent être triés par ordre décroissant de population, en renvoyant d'abord les pays avec
les plus grandes villes. Enfin, la structure des documents doit reproduire ce qui suit :
Exemple de structure de document
"location" : {
"country" : "Japan",
"continent" : "Asia"
},
"most_populated_city" : {
"name" : "Tokyo",
"population" : 37.4
Pour commencer à créer un pipeline d’agrégation qui répondra à ces exigences, ouvrez l’
onglet Agrégations de la citiescollection.
Commencez par filtrer les documents initiaux provenant de la citiescollection pour n'inclure que les
pays d'Asie et d'Amérique du Nord. Ouvrez l' onglet Agrégationscities de la collection :
La partie supérieure de la vue du générateur de pipeline d'agrégation affiche les documents sources
de la collection. Cela vous permet de parcourir rapidement les documents qui seront utilisés comme
entrée pour le pipeline d'agrégation. Notez que si les documents n'apparaissent pas immédiatement,
vous devrez peut-être appuyer sur le bouton d'actualisation ( ⟳ ) pour faire apparaître ces
documents s'ils ne sont pas présents par défaut.
Dans le cas de cet exemple, il s'agit des citiesdocuments avec leur structure originale, non modifiée.
La deuxième ligne, initialement vide, correspond à la première étape d'agrégation.
La première étape de la création de cet exemple de pipeline consiste à filtrer les documents initiaux
provenant de la citiescollection afin qu'ils ne contiennent que des documents représentant des villes
d'Amérique du Nord et d'Asie. Pour cela, utilisez le menu déroulant Sélectionner… et choisissez
l' $matchétape. MongoDB Compass vous fournira un exemple montrant la syntaxe qu'il attend. La
valeur attendue est le même type de document de filtre de requête que celui qui correspond
généralement aux paramètres d'une $matchétape.
Saisissez les informations suivantes pour faire correspondre uniquement les villes d'Amérique du
Nord et d'Asie :
"continent": { $in: ["North America", "Asia"] }
Copie
Compass prévisualise automatiquement les résultats de l'application de la première étape, en
affichant les documents filtrés sur la droite. De cette façon, vous pouvez rapidement vérifier que
chaque étape fonctionne comme prévu :
La deuxième étape consiste à classer les documents par population dans l'ordre décroissant. Ajoutez
une étape supplémentaire à l'aide du bouton AJOUTER UNE ÉTAPE . Une autre ligne d'étape vide
apparaît. Sélectionnez alors l' $sortétape et saisissez les paramètres suivants :
{ "population": -1 }
Copie
Une fois de plus, les documents renvoyés auront la même structure, mais Tokyo apparaît en premier
dans le volet d'aperçu qui affiche désormais les résultats triés à la place :
La liste des villes étant désormais triée en fonction de la population provenant des continents
attendus, l'étape suivante consiste à regrouper les villes par pays, en choisissant uniquement la ville
la plus peuplée de chaque groupe. Ajoutez une autre étape, en sélectionnant cette
fois $groupcomme type d'étape.
Pour regrouper les villes par paires uniques de continents et de pays et résumer ces paires en
affichant uniquement le nom et la population de leurs villes les plus peuplées, saisissez les
paramètres de regroupement suivants :
"_id": {
"continent": "$continent",
"country": "$country"
},
"first_city": { $first: "$name" },
"highest_population": { $max: "$population" }
Copie
La highest_populationvaleur utilise l' $maxopérateur d'accumulation pour trouver la ville la plus
peuplée du groupe, tandis que la valeur first_cityobtient le nom de la première ville. Grâce à l'étape
de tri que vous avez appliquée précédemment, vous pouvez être sûr qu'il s'agit également de la ville
la plus peuplée du groupe :
Après avoir appliqué l'étape de regroupement, la liste des documents est réduite à 9 entrées, mais la
structure du document est désormais différente de celle d'avant. Compass prévisualise le résultat de
l'étape de regroupement sur la droite, en affichant les valeurs nouvellement
calculées highest_populationainsi first_cityque la valeur de l'expression de regroupement dans
le _idchamp.
La dernière étape pour satisfaire aux exigences décrites au début de cette section consiste à
transformer la structure du document. Vous pouvez le faire en ajoutant une autre ligne d'étape et en
la sélectionnant $projectcomme étape. Pour obtenir la structure de document spécifiée, saisissez le
document de projection suivant :
"_id": 0,
"location": {
"country": "$_id.country",
"continent": "$_id.continent",
},
"most_populated_city": {
"name": "$first_city",
"population": "$highest_population"
}
Ce document supprime d'abord le _idchamp afin qu'il n'apparaisse pas du tout dans la sortie. Ensuite,
il crée un locationchamp écrit sous forme de document imbriqué avec deux champs
: countryet continent. Chacun d'eux fait référence aux valeurs du document
d'entrée. most_populated_citysuit un principe similaire, en imbriquant les
champs nameet populationà l'intérieur. Ces deux champs font référence aux champs de niveau
supérieur first_cityet highest_population. Cette étape de projection construit effectivement une
structure entièrement nouvelle pour la sortie :
Notez que le volet d'aperçu à droite de cette étape d'agrégation affiche l'échantillon de sortie après
transformation. Grâce à cela, vous pouvez rapidement confirmer que l'étape de projection a abouti à
la transformation attendue.
En utilisant le générateur de pipeline d'agrégation, vous pouvez facilement créer des agrégations
étape par étape sans vous soucier de la syntaxe complexe d'une seule commande d'agrégation.
L'activation du commutateur SAMPLE MODE garantit que MongoDB Compass n'utilisera qu'un sous-
ensemble de documents d'entrée, ce qui accélère le développement de pipelines lorsque l'ensemble
de données source est volumineux.
Grâce au panneau d'aperçu de chacune des étapes, vous pouvez vérifier que chaque étape fournit les
résultats escomptés. Vous pouvez également désactiver et activer des étapes individuelles à l'aide
des commutateurs à bascule pour comprendre comment le pipeline d'agrégation fonctionnera sans
certaines des étapes activées.
Étape 6 — Analyse de la structure du schéma
Dans les étapes précédentes, vous avez utilisé MongoDB Compass pour parcourir les données à l'aide
d'outils interactifs. Avec ces exemples, Compass a servi davantage à faciliter l'exécution des fonctions
de routine dans MongoDB, mais dans cette étape, vous allez explorer une fonctionnalité propre à
Compass : son interface de visualisation de schéma. Cet outil peut vous aider à comprendre la
structure des données au sein de vos collections.
Pour l'utiliser, sélectionnez d'abord l' onglet Schémacities dans la vue de collection. La vue sera
initialement vide, mais lorsque vous appuierez sur le bouton Analyser , Compass traitera les données
pour révéler des informations sur leur forme, leur taille et leur contenu :
Remarque : de la même manière que pour parcourir simplement les données, vous pouvez utiliser
des documents de requête de filtre pour affiner la sélection et forcer MongoDB Compass à fournir
des informations sur un sous-ensemble de documents de collection :
Pour chacun des champs du document, le visualiseur de schéma fournira des informations sur les
données trouvées dans la base de données.
Par exemple, remarquez le _idchamp dans le visualiseur de schéma. MongoDB exige que chaque
document dispose d'un _idchamp à utiliser comme clé primaire. Dans le visualiseur de schéma de
Compass, il indique quand les documents ont été insérés dans la base de données. Dans cet exemple,
tous les documents ont été insérés à un moment précis, le dimanche soir. Avec une base de données
vivante, cependant, les entrées seront réparties tout au long de l'utilisation de la base de données.
Ces connaissances peuvent être utiles pour évaluer l'utilisation de la base de données au cours d'une
semaine type.
Pour les champs continentet country, qui contiennent tous deux des valeurs de chaîne mais dont les
valeurs apparaissent plusieurs fois dans la collection, Compass affiche de manière pratique la
fréquence d'apparition de chaque valeur dans l'ensemble de données par défaut. Il y a
moins continentde valeurs disponibles, elles sont donc affichées sur une ligne, illustrant la fréquence
à laquelle elles apparaissent dans l'ensemble de données. L'ensemble de données contient davantage
de valeurs distinctes country, c'est pourquoi l'interface crée un graphique de fréquence à la place.
Le namechamp est également un champ de valeur de chaîne, mais cette fois, chaque valeur est
unique. Dans ce cas, Compass affiche un exemple d'ensemble de valeurs.
En combinant le visualiseur de schéma de Compass avec les capacités de filtrage de MongoDB, vous
pouvez analyser rapidement vos données et les visualisations générées, ce qui vous permet
d'analyser vos données sans avoir à rédiger de requêtes complexes. Cela s'avère pratique non
seulement pour visualiser le contenu de la base de données, mais également pour comprendre les
données afin d'aider à la prise de décisions concernant la création d'index ou de clusters fragmentés.
Conclusion
Dans cet article, vous vous êtes familiarisé avec MongoDB Compass, une interface graphique qui vous
permet de gérer vos données MongoDB via un affichage visuel pratique. Vous avez utilisé l'outil pour
créer une nouvelle collection, insérer de nouveaux documents, filtrer et parcourir les données, créer
un pipeline d'agrégation à plusieurs étapes et visualiser le schéma de la collection à l'aide de l'outil de
visualisation de schéma.
Le didacticiel décrit uniquement un sous-ensemble des fonctionnalités de MongoDB Compass, qui
englobent de nombreuses autres fonctionnalités liées à l'administration de MongoDB, telles que la
gestion des index, la visualisation du plan d'exécution des requêtes et une vue des mesures de
performances en temps réel du serveur. Pour en savoir plus sur la manière dont Compass peut vous
aider, nous vous encourageons à étudier la documentation officielle de MongoDB Compass .