Master : Systèmes Embarqués & Services Numériques
TP 1 : Mise en œuvre et introduction à Année : 2023-2024
Module : Bases de données NoSQL
MongoDB Prof. : Yasmine LAMARI -
[email protected] Consignes :
Un rapport de ce travail pratique doit être préparé en binôme d’étudiants ou en monôme, et
soumis dans la plateforme Google Classroom associée à ce module, avant la date de la
prochaine séance de travail pratique.
Le rapport doit être bref, clair et concis. Il doit également inclure les étapes de réalisation du
travail pratique expliquées si nécessaire à l’aide des captures d’écran claires.
Le document électronique à rendre doit respecter la nomenclature suivante :
− Type : PDF
− Nom : NomFamilleEtudiant1_NomFamilleEtudiant2_TPM1
1. Préparation de l’environnement de travail
1.1. Outils & logiciels à télécharger & installer
MongoDB server Community, à télécharger du lien suivant:
https://www.mongodb.com/try/download/community
MongoDB Database Tools pour charger les données, à télécharger du lien suivant :
https://www.mongodb.com/try/download/database-tools
Le client MongoDB : Studio 3T, à télécharger du lien suivant :
https://studio3t.com/download/.
S’il y a besoin, le shell de MongoDB : Mongosh, à télécharger du lien suivant :
https://www.mongodb.com/docs/mongodb-shell/install/
1.2. Installation et lancement du serveur MongoDB
Pour installer le serveur, consultez la documentation :
https://docs.mongodb.com/manual/administration/install-community/
Sous Linux :
1. Installez le serveur MongoDB comme décrit dans le lien ci-dessus, en sélectionnant
le bon système d’exploitattion.
2. Ensuite, pour lancer le serveur : $ sudo systemctl start mongod
3. Pour vérifier l’état du serveur : $ sudo systemctl status mongod
4. Pour arrêter le serveur : $ sudo systemctl stop mongod
Assurez-vous que le serveur est bien démarré pour la suite de ce TP.
Sous Windows :
1. Installez le serveur MongoDB : il faut noter le répertoire d’installation, et décocher la
case d’installation du serveur comme service.
2. Ensuite, créez un répertoire de données permettant de stocker les données de
MongoDB (Ex. : C:\data\db).
3. Pour lancer le serveur MongoDB, il faut ouvrir une invite de commandes, et aller au
répertoire d’installation du serveur MongoDB \ bin (Ex. : C:\Program Files\MongoDB\
Server\x.0\bin).
4. Dans l’invite de commandes, tapez la commande suivante en renseignant le chemin
qui mène au répertoire des données (voir étape 2.) :
mongod --dbpath "˂Répertoire des données>"
1
Master : Systèmes Embarqués & Services Numériques
TP 1 : Mise en œuvre et introduction à Année : 2023-2024
Module : Bases de données NoSQL
MongoDB Prof. : Yasmine LAMARI - [email protected]
5. Le serveur MongoDB marche en local et attend les connexions sur le port 27017.
Vous devez garder cette invite de commandes ouverte.
1.3. Connexion au serveur MongoDB
1. Lancez une nouvelle invite de commandes, et allez au répertoire d’installation du
serveur MongoDB \ bin (voir l’étape 1).
2. Lancez le client mongodb avec l’instruction : mongo
ou le client mongosh avec l’instruction : mongosh
Attendre quelques instants, des messages apparaissent, ensuite, un curseur « > »
s’active.
Si tout marche bien vous êtes alors connectés !
Figure 1: Client Shell de Mongodb : mongosh
Sinon, il faudra installer le shell Mongosh comme décrit dans la section 1.1. selon votre
système d’exploitation.
2. Gestion des bases de données et des collections
2.1. Création d’une base de données
Dans MongoDB, les bases de données contiennent une ou plusieurs collections de
documents. Pour créer / sélectionner une base de données à utiliser, on utilise la
commande : use <db>
Exemple :
use maDB
Remarque : Dans le shell, db fait référence à la base de données actuelle.
Affichage des collections :
La commande suivante permet d’afficher toutes les bases de données : show dbs.
2.2. Création d’une collection
Création explicite :
La méthode db.createCollection() permet de créer explicitement une collection
avec diverses options. Cette technique est utile si on a besoin de spécifier des options,
telles que la définition de la taille maximale ou les règles de validation des documents.
2
Master : Systèmes Embarqués & Services Numériques
TP 1 : Mise en œuvre et introduction à Année : 2023-2024
Module : Bases de données NoSQL
MongoDB Prof. : Yasmine LAMARI - [email protected]
Exemple :
db.createCollection("maCollection1")
Création implicite :
Si une collection n'existe pas, MongoDB crée la collection lorsque vous stockez pour la
première fois les données de cette collection.
Exemple :
db.maCollection2.insertOne( { x: 1 } )
Affichage des collections :
La commande suivante permet d’afficher toutes les collections d’une base de données :
show collections
2.3. Importation des données
L'outil mongoimport importe le contenu de fichiers JSON, CSV ou TSV créés par
mongoexport, ou éventuellement, un autre outil d'exportation tier.
Sous Linux : Si le serveur MongoDB est installé via le gestionnaire de packages, les outils
de base de données sont probablement déjà installés. Pour vérifier ceci, utilisez la
commande suivante : sudo dpkg -l mongodb-database-tools
1. Dans un nouveau terminal positionné sur le répertoire qui contient le fichier à
importé (Ex. : zips.json) , tapez :
$ mongoimport --db maDB --collection zips_usa --file "zips.json"
2023-10-16T17:18:43.144+0100 connected to: mongodb://localhost/
2023-10-16T17:18:43.582+0100 29353 document(s) imported successfully. 0
document(s) failed to import.
Sous Windows :
1. Décompresser le fichier zip contenant les outils MongoDB Database Tools (voir
section 1.1).
2. Déplacez les fichiers, surtout : mongoimport.exe dans le répertoire d’installation \bin
(voir section 1.2 étape 1.). Pour plus de détails, consultez la documentation :
https://www.mongodb.com/docs/database-tools/installation/installation/
3. Copiez le fichier zips.json disponible dans le drive de ce module, dans le répertoire
d’installation \bin.
4. Exécutez mongoimport à partir d’une nouvelle invite de commandes (pas du shell
mongo !) positionnée sur le répertoire d’installation \bin :
mongoimport --db maDB --collection zips_usa --file "zips.json"
Question 1 : Que se passe-t-il si la base de données maDB n’existe pas ?
2.4. Lister le contenu d’une collection
db.collection.find(): sélectionne des documents dans une collection ou une vue et
donne un curseur sur les documents sélectionnés.
db.collection.find().pretty() : configure le curseur pour afficher les résultats dans
un format facile à lire.
Question 2 : Affichez le contenu de la collection importée du fichier de données
« zips.json » avec et sans la commande pretty(), quelle est la différence entre les deux
affichage ?
3
Master : Systèmes Embarqués & Services Numériques
TP 1 : Mise en œuvre et introduction à Année : 2023-2024
Module : Bases de données NoSQL
MongoDB Prof. : Yasmine LAMARI - [email protected]
2.5. Suppression d’une collection
db.collection.drop(): supprime une collection de la base de données. La méthode
supprime également tous les index associés à la collection supprimée.
Question 3 : Listez toutes les collections de la base de données courante, puis supprimez
la collection importée, et listez à nouveau toutes les collections.
2.6. Suppression d’une base de données
db.dropDatabase() : supprime la base de données actuelle, en supprimant les fichiers
de données associés.
Question 3 : Listez toutes les bases de données, puis supprimez maDB importée, et listez à
nouveau toutes les bases de données existantes.
3. Gestion des documents
3.1. Insertion des documents
MongoDB fournit les méthodes suivantes pour insérer les documents dans une collection :
db.collection.insertOne() : insère un seul document dans une collection et
renvoie un document qui inclut la valeur du champ _id du document nouvellement
inséré.
db.collection.insertMany(): insère plusieurs documents à la fois dans une
collection, passés en paramètre sous forme d’un tableau de documents. Cette
méthode renvoie un document qui inclut les valeurs du champ _id des documents
nouvellement insérés.
db.collection.insert(): insère un document ou des documents dans une
collection. Cette méthode renvoie un objet qui contient le statut de l'opération.
3.2. Modification des documents
MongoDB fournit les méthodes suivantes pour mettre à jour les documents d'une
collection :
db.collection.updateOne() : met à jour au maximum un seul document
correspondant à un filtre spécifié, même si plusieurs documents peuvent
correspondre au filtre spécifié.
db.collection.updateMany() : met à jour tous les documents qui correspondent à
un filtre spécifié.
db.collection.replaceOne() : remplace au plus un seul document correspondant
à un filtre spécifié, même si plusieurs documents peuvent correspondre au filtre
spécifié.
3.3. Suppression des documents
MongoDB fournit les méthodes suivantes pour supprimer les documents d'une collection :
db.collection.deleteOne() : supprime au plus un seul document correspondant à
un filtre spécifié, même si plusieurs documents peuvent correspondre au filtre
spécifié.
db.collection.deleteMany() : supprime tous les documents qui correspondent à
un filtre spécifié.
4
Master : Systèmes Embarqués & Services Numériques
TP 1 : Mise en œuvre et introduction à Année : 2023-2024
Module : Bases de données NoSQL
MongoDB Prof. : Yasmine LAMARI - [email protected]
db.collection.remove() : supprime un seul document ou tous les documents
correspondant à un filtre spécifié.
4. Studio 3T
4.1.Téléchargez et installez Studio 3T (lien donné dans la section 1.1). Plus de détails sur :
https://studio3t.com/knowledge-base/articles/installation/
4.2.Pour récupérer une chaîne de connexion sous MongoDB : Dans l’invite de mongosh,
tapez :
db.getMongo()
4.3.Ouvrez Studio 3T et cliquez sur : Créer une nouvelle connexion, et e ntrez votre chaîne
de connexion. Ensuite, cliquez sur suivant et nommez votre connexion exemple :
MongoDB_connect_1. Cliquez sur Enregistrer.
Figure 2: Création d'une nouvelle connexion : Studio 3T
Studio 3T c’est un environnement de développement intégré (IDE) et une interface
graphique (GUI) pour MongoDB.
Figure 3: Aperçu du Studio 3T
5
Master : Systèmes Embarqués & Services Numériques
TP 1 : Mise en œuvre et introduction à Année : 2023-2024
Module : Bases de données NoSQL
MongoDB Prof. : Yasmine LAMARI - [email protected]
5. Travail à faire
1) Créez une base de données, nommée universityDB.
2) Créez un fichier JSON, qui reprend l’exercice 3 de la série des travaux dirigés N°1.
3) Importez le fichier créé sous forme de collection, nommée students dans la base de
données universityDB.
4) Insérez un nouveau document dans la collection students, en utilisant vos propres
données personnelles.
5) Modifiez le titre associé au cours dont l’id est info1b, de « Web » à « Technologies du
Web » pour tous les documents.
6) Supprimez le document ayant l’id : 3215.
7) Affichez le contenu de la collection students.