Installer et gérer MongoDB dans ServBay
MongoDB est l’une des bases de données NoSQL leaders du marché, réputée pour sa flexibilité, la richesse de ses requêtes et sa capacité de mise à l’échelle horizontale – autant de raisons qui en font un choix populaire pour le développement d’applications modernes. ServBay offre aux développeurs macOS un environnement intégré sans égal, qui simplifie radicalement l’installation, la configuration et la gestion de plusieurs versions de MongoDB, tout en intégrant une suite complète d’outils en ligne de commande pour créer une station de travail locale performante et efficace.
Panorama : pourquoi utiliser MongoDB avec ServBay ?
ServBay n’est pas qu’un simple gestionnaire de démarrage, il s’agit d’une plateforme de gestion de développement complète. Pour MongoDB, cela signifie :
- Multi-version & commutation facile : Installez et exécutez plusieurs versions de MongoDB (ex. 5.0, 6.0, 7.0) d’un clic, et basculez d’une version à l’autre selon les besoins de vos projets, sans risque de conflit d’environnement.
- Configuration graphique : Oubliez les modifications manuelles fastidieuses de fichiers de configuration. À travers l’interface graphique de ServBay, configurez d’un coup d’œil ports, IP, répertoire de données et autres paramètres essentiels de MongoDB.
- Chaîne d’outils intégrée : ServBay gère et intègre automatiquement le MongoDB Shell (
mongosh
) officiel et les Outils de base de données MongoDB – accédez instantanément àmongostat
,mongotop
,mongodump
etmongorestore
dès la sortie de l’installation.
Ce guide propose un parcours complet, du novice à l’expert, couvrant : installation, configuration, gestion interactive, monitoring en temps réel, sauvegarde et restauration de vos données.
1. Installer et configurer le service MongoDB
Étape 1 : Installer le paquet MongoDB
L’installation du service MongoDB dans ServBay est la première opération à réaliser.
Ouvrez l’application ServBay.
Dans la barre latérale gauche, cliquez sur Packages (Paquets).
Parcourez la liste des paquets jusqu’à la rubrique
Databases
, puis localisez la sectionMongoDB
.Sélectionnez la version de MongoDB requise pour votre projet (par exemple
MongoDB 7.0
) et cliquez sur le bouton d’installation situé à sa droite. ServBay procèdera automatiquement au téléchargement et à l’installation.
Étape 2 : Configurer en détail le service MongoDB
Une fois l’installation terminée, affinez la configuration de votre service MongoDB.
Dans la barre latérale gauche, cliquez sur Databases -> MongoDB -> sélectionnez la version que vous venez d’installer (ex.
MongoDB 7.0
).Depuis cette interface, vous pouvez personnaliser les paramètres essentiels suivants :
- Bind IP (IP d’écoute) : Adresse IP à laquelle MongoDB va écouter les requêtes réseau. La valeur par défaut
127.0.0.1, ::1
est idéale pour le développement local, car seules les applications du poste local pourront accéder à la base de données. - Bind Port (Port d’écoute) : Le port utilisé pour la connexion à la base. Par défaut, MongoDB utilise le port
27017
– il est conseillé de conserver cette valeur sauf cas particulier. - Socket : Chemin du fichier de socket Unix. Pour une connexion locale, l’utilisation du socket est plus performante que le protocole TCP/IP en évitant la couche réseau.
- Data dir (Répertoire de données) : Chemin sur le disque où MongoDB stocke tous ses fichiers de base de données (collections, index, etc.). ServBay définit une valeur par défaut optimale, ajustable via l’icône dossier à droite pour un accès rapide dans Finder.
- Additional Parameters (Paramètres additionnels) : Zone avancée pour ajouter des paramètres de démarrage MongoDB, par exemple
--auth
pour activer le contrôle d’accès.
- Bind IP (IP d’écoute) : Adresse IP à laquelle MongoDB va écouter les requêtes réseau. La valeur par défaut
Étape 3 : Démarrer le service MongoDB
- Après avoir sauvegardé la configuration (bouton Save (Enregistrer) en bas à droite), retournez à la page Packages (Paquets).
- Repérez la version MongoDB que vous venez de configurer puis activez le service via son bouton-interrupteur associé.
- Le bouton passe au vert, et un témoin lumineux confirme que MongoDB s’exécute et attend les connexions.
2. Gestion interactive : maîtriser MongoDB Shell (mongosh
)
mongosh
est l’interface en ligne de commande moderne et officielle de MongoDB. Elle propose coloration syntaxique, complétion intelligente, historique des commandes, et la possibilité d’exécuter des scripts étendus, en en faisant l’outil privilégié pour interagir avec votre base.
Installer MongoDB Shell
ServBay propose mongosh
comme paquet indépendant, installable à la demande.
- Depuis la page Packages (Paquets), repérez
MongoDB Shell
. - Cliquez sur le bouton d’installation à droite. Une fois installé, la commande
mongosh
sera disponible globalement dans l’environnement Terminal géré par ServBay.
Comment utiliser mongosh
?
Vous pouvez lancer mongosh
depuis n’importe quel terminal compatible avec l’environnement ServBay (ex. Terminal macOS ou iTerm2).
Connexion de base : Ouvrez un terminal puis exécutez la commande suivante pour se connecter à l’instance MongoDB locale sur le port
27017
:bashmongosh
1Connection explicite avec une chaîne complète :
bashmongosh "mongodb://127.0.0.1:27017"
1Exemples enrichis d’opérations interactives (pratique du CRUD) : Après connexion, vous entrez dans un environnement JavaScript interactif puissant. Suivez cet exemple pas à pas.
Étape 1 : sélectionner ou créer une base de données
javascript// Cette commande bascule vers la base 'servbay-demo'. Si elle n’existe pas, elle sera créée à la première écriture. use servbay-demo
1
2Étape 2 : créer une collection et insérer des données (Create)
javascript// Insérer un document utilisateur db.users.insertOne({ _id: 1, name: "Alice", email: "alice@servbay.demo", age: 30, tags: ["developer", "php", "backend"], joined_date: new Date("2023-01-15") }) // Insérer plusieurs documents utilisateurs, pour enrichir les futures recherches db.users.insertMany([ { _id: 2, name: "Bob", email: "bob@servbay.demo", age: 25, tags: ["designer", "ui", "frontend"] }, { _id: 3, name: "Charlie", email: "charlie@servbay.demo", age: 35, tags: ["developer", "python", "data"] }, { _id: 4, name: "Diana", email: "diana@servbay.demo", age: 29, tags: ["developer", "nodejs", "backend"] } ])
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Étape 3 : requêter les données (Read)
javascript// Afficher tous les documents de la collection, avec mise en forme .pretty() db.users.find().pretty() // Requête conditionnelle : trouver tous les développeurs de plus de 28 ans db.users.find({ age: { $gt: 28 }, tags: "developer" }) // Projection de champs : afficher uniquement nom et email db.users.find({}, { name: 1, email: 1, _id: 0 })
1
2
3
4
5
6
7
8Étape 4 : mettre à jour des données (Update)
javascript// Mettre à jour un document : ajouter le tag 'lead' à Alice, et corriger son âge db.users.updateOne( { name: "Alice" }, { $set: { age: 31 }, $addToSet: { tags: "lead" } } // $addToSet évite la duplication des tags ) // Mise à jour multiple : ajouter un statut 'active' à tous les développeurs 'backend' db.users.updateMany( { tags: "backend" }, { $set: { status: "active" } } )
1
2
3
4
5
6
7
8
9
10
11Étape 5 : supprimer des données (Delete)
javascript// Supprimer un document db.users.deleteOne({ name: "Bob" }) // Vérifier le résultat : devrait afficher 0 db.users.find({ name: "Bob" }).count()
1
2
3
4
5
3. Monitoring et gestion en temps réel : maîtriser les outils MongoDB
ServBay intègre également le paquet MongoDB Database Tools
embarquant des outils clés pour l’administration avancée et la supervision : mongostat
, mongotop
, mongodump
et mongorestore
.
Installer les MongoDB Database Tools
- Depuis la page Packages (Paquets), repérez
MongoDB Database Tools
. - Cliquez sur le bouton d’installation correspondant.
3.1 Utiliser mongostat
pour surveiller l'état en temps réel
mongostat
offre une vue « électrocardiogramme » de MongoDB : il capture, à fréquence élevée, les métriques vitales de l’instance, ce qui en fait l’outil de choix pour diagnostiquer les goulots d’étranglement ou suivre la charge opérationnelle.
Utilisation basique : Lancez un nouveau terminal avec la commande suivante, affichage mis à jour chaque seconde :
bashmongostat
1Exemple de sortie obtenue :
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time *0 *0 *0 *0 0 1|0 0.0% 23.2% 0 1.29G 84.0M 0|0 1|0 103b 501b 4 Nov 26 15:30:00.001 *0 *0 *0 *0 0 1|0 0.0% 23.2% 0 1.29G 84.0M 0|0 1|0 71b 501b 4 Nov 26 15:30:01.001
1
2
3Explications :
insert
,query
,update
,delete
: nombre d’opérations par seconde.dirty
: pourcentage de données « sales » en cache (modifiées mais pas encore écrites sur disque).used
: pourcentage de cache utilisé par le moteur de stockage.vsize
,res
: mémoire virtuelle utilisée et mémoire résidente.qrw
,arw
: clients en file d’attente de lecture/écriture.net_in
,net_out
: trafic entrant/sortant réseau.conn
: connexions actives.
Cas pratique : observer une charge d’écritures concurrentes
- Ouvrez un terminal (Terminal A), lancez
mongosh
puis exécutez ce script de simulation :javascript// À lancer dans mongosh use log_system print("Démarrage d’une insertion de logs en fréquence élevée...") while (true) { db.app_logs.insertOne({ level: "INFO", message: "User activity detected.", timestamp: new Date() }); sleep(50); // Une insertion toutes les 50ms (soit 20/sec) }
1
2
3
4
5
6
7 - Ouvrez un autre terminal (Terminal B), et lancez
mongostat
avec un rafraîchissement toutes les 2 secondes :bashmongostat 2
1 - Analysez la sortie du Terminal B : la colonne
insert
affiche autour de*40
(20 insertions/sec * 2s), montrant clairement une forte charge d’écriture.
- Ouvrez un terminal (Terminal A), lancez
3.2 Utiliser mongotop
pour analyser le temps passé par collection
Si mongostat
montre « que la base travaille », mongotop
indique « sur quoi elle travaille ». Il suit le temps passé en lecture/écriture par collection, outil précieux pour localiser les zones chaudes de trafic.
Utilisation basique : Dans le terminal, lancez :
bashmongotop
1Sortie type :
ns total read write time local.oplog.rs 1101ms 155ms 946ms Nov 26 15:35:00.000 servbay-app.sessions 210ms 1ms 209ms Nov 26 15:35:00.000 servbay-app.articles 15ms 15ms 0ms Nov 26 15:35:00.000
1
2
3
4Explications des colonnes :
ns
: espace de nom (base.collection).total
: temps total d’opération lecture/écriture pour la collection.read
: temps passé en lecture.write
: temps passé en écriture.
Cas pratique : identifier les collections hotspots
- Depuis le Terminal A (mongosh), simulez une appli mettant à jour fréquemment les sessions utilisateur, et lisant parfois des articles :javascript
// À exécuter dans mongosh use servbay_app print("Simulation de charge applicative...") // Mise à jour fréquente des sessions setInterval(() => { db.sessions.updateOne({ sid: "session_abc" }, { $set: { data: Math.random() } }, { upsert: true }); }, 50); // Lecture occasionnelle d’articles setInterval(() => { db.articles.find({ tags: "featured" }).limit(5).toArray(); }, 500);
1
2
3
4
5
6
7
8
9
10
11
12 - Dans le Terminal B, lancez
mongotop
avec un rafraîchissement toutes les 5 secondes pour une observation stable :bashmongotop 5
1 - Analysez la sortie du Terminal B : la collection
servbay_app.sessions
montre des valeurs élevées enwrite
ettotal
, alors queservbay_app.articles
reste bas en lecture. Vous pouvez diagnostiquer que le principal goulot d’étranglement est lié aux écritures fréquentes dans la gestion des sessions – peut-être à repenser côté application !
- Depuis le Terminal A (mongosh), simulez une appli mettant à jour fréquemment les sessions utilisateur, et lisant parfois des articles :
3.3 Utiliser mongodump
pour les sauvegardes
mongodump
est l’outil de référence pour créer des sauvegardes binaires (BSON) de vos bases de données MongoDB.
- Sauvegarder une base de données spécifique :bash
mongodump --db servbay-demo --out /Applications/ServBay/backup/mongodb/servbay-demo-backup-$(date +%F)
1 - Sauvegarder une collection spécifique :bash
mongodump --db servbay-demo --collection users --out /Applications/ServBay/backup/mongodb/users-backup
1 - Sauvegarder l’ensemble de l’instance (toutes les bases) :bash
mongodump --out /Applications/ServBay/backup/mongodb/full-instance-backup
1
3.4 Utiliser mongorestore
pour la restauration
mongorestore
permet d’importer les données sauvegardées à l’aide de mongodump
dans votre instance MongoDB.
- Restaurer une base de données complète :bash
# L’option --drop supprime les collections existantes du même nom avant import mongorestore --drop --db servbay-demo /Applications/ServBay/backup/mongodb/servbay-demo-backup-2023-11-26/servbay-demo/
1
2 - Restaurer une collection à partir d’une sauvegarde :bash
mongorestore --db servbay-demo --collection users_restored /Applications/ServBay/backup/mongodb/users-backup/users.bson
1
4. Connexion avec un outil graphique (GUI)
Au-delà de la ligne de commande, vous pouvez bien sûr gérer MongoDB dans ServBay avec n’importe quel outil graphique du marché, parfait pour naviguer dans vos données ou construire des pipelines d’agrégation. Outils recommandés : MongoDB Compass, TablePlus ou Studio 3T.
Pour vous connecter, renseignez les informations suivantes dans votre GUI :
- Host (Hôte) :
127.0.0.1
- Port :
27017
- Authentication (Authentification) : Laissez vide sauf si vous avez explicitement activé l’authentification (
--auth
) et créé des utilisateurs.
Conclusion
ServBay sublime la puissance de MongoDB et celle de macOS, offrant un environnement de développement local incomparable. Ce guide vous a montré comment démarrer rapidement MongoDB, gérer votre base via mongosh
, surveiller les performances avec mongostat
et mongotop
, puis réaliser des sauvegardes/restaurations fiables grâce à mongodump
et mongorestore
. Vous voilà désormais prêt à tirer pleinement parti de MongoDB sur vos projets !