Matière : Les Base de données NoSQL
AU : 2023-2024
Enseignante responsable : Faiza GHOZZI, Sahar KALLEL Section : T-LSI
ADBD
Enseignantes de TP : Hana MALLEK, Houyem Heni,
Nesrine Kadri
TP1 : Installation et mise en route de mongoDB
Objectifs :
L'objectif de ce TP est de vous initier à l'utilisation de la base de données orientée documents MongoDB,
à la fois du côté serveur et du côté client. Vous allez ensuite importer un jeu de données et rédiger les
premières requêtes pour satisfaire des besoins particuliers.
1. Introduction
Une base de données MongoDB se compose de collections, qui à leur tour sont constituées de
documents. Un document est essentiellement une structure organisée où chaque élément est
représenté sous la forme de paires clé-valeur. Les clés sont des chaînes de caractères, tandis que les
valeurs peuvent prendre divers types prédéfinis, comme illustré ci-dessous :
Par exemple, voici un document représentant un employé dans une collection "employees" :
{
"_id": 1,
"nom": "Dupont",
"prénom": "Alice",
"âge": 32,
"poste": "Ingénieur",
« département": "Développement"
}
Dans ce document :
"_id" est la clé primaire unique, qui peut être automatiquement générée par MongoDB.
"nom", "prénom", "âge", "poste", et "département" sont des clés représentant différentes informations
sur l'employé.
Les valeurs associées à ces clés sont de types variés : "nom", "prénom", poste et département sont des
chaînes de caractères, "âge" est un nombre.
2. Préparation
Créer un nouveau dossier nommé « D:/TP_NOSQL_<votreNom> ». Ce dossier servira à
stocker tous les documents à télécharger.
Télécharger et installer MongoDB (version 4.4.24 ) à partir du site officiel
(https://www.mongodb.com/try/download/community). Redémarrer votre ordinateur
pour finaliser l’installation
Télécharger Robot 3T à partir ce lien https://studio3t.com/download-studio3t-free/
Télécharger les outils de base de données MongoDB version 100.8.0 à partir ce lien
https://www.mongodb.com/try/download/database-tools
Télécharger le fichier « movies_mongodb.json » à partir de la plateforme Google
Classeroom
3. Lancement du MongoDB
MongoDB étant un logiciel client-serveur, il y a deux parties à exécuter, la partie serveur et
ensuite la partie client.
• Partie serveur : Mongod
- Créer les dossiers C:\data et C:\data\db (c'est là que MongoDB stocke vos données et
d'autres choses).
Remarque : Pour assurer le bon fonctionnement du serveur, il est essentiel de créer
le dossier "db" dans le répertoire (C:\data). Cet emplacement est défini par défaut
dans MongoDB, mais il peut être modifié en spécifiant l'option "dbpath" lors du
démarrage du serveur.
- Pour activer le serveur (mongod), vous avez deux options :
a) La ligne de commande : mongod (où le
chemin C:\Program Files\MongoDB\Server\4.4\bin doit être
défini dans les variables d’environnement).
b) ou bien vous pouvez le démarrer en double-cliquant sur l'exécutable mongod.exe
qui se trouve dans le répertoire (C:\Program Files\MongoDB\Server\4.4\bin).
Remarque : N’éteignez pas la fenêtre du serveur tout au long de votre travail sur
MongoDB, car cela provoquerait l'arrêt du serveur.
Notez que le serveur est en attente d'une connexion sur le port 27017.
• Partie client
Pour interagir avec le serveur, il nous faut un client (Shell MongoDB). On peut l’utiliser pour
l’interrogation, la mise à jour de la base et aussi pour des opérations administratives de la
base.
- Pour activer le client (mongo), vous avez trois options :
a) La ligne de commande : mongo (où le chemin
C:\Program
Files\MongoDB\Server\4.4\bin doit être défini dans les variables
d’environnement doit être défini dans les variables d’environnement).
b) ou bien vous pouvez le démarrer en double-cliquant sur l'exécutable mongo.exe
(Mongo Shell) qui se trouve dans le répertoire (C:\Program
Files\MongoDB\Server\4.4\bin).
La connexion au serveur est établie sur la base test (qui est la base par défaut) et le
prompt (>) attend les requêtes.
- Lancez la commande db pour afficher la base de données courante.
Avec Turbo 3T
- Installer Turbo 3T téléchargé dans la section précédente tout en suivant les procédures
d’installation standards
- Accepter et valider la Licence d’utilisation
- Créer une nouvelle connexion en suivant ces étapes :
a) Cliquez sur le bouton "Connect" pour ouvrir la fenêtre de connexion.
b) Dans la fenêtre de connexion, donnez un nom ("MaConnexionMongoDB") à
votre connexion pour la distinguer.
c) Assurez-vous que le champ "Hostname" (Nom d'hôte) est défini sur "localhost "
puisque nous allons exécuter MongoDB en local.
d) Configurez le champ "Port" sur 27017, qui est le port par défaut de MongoDB.
e) Cliquez sur le bouton "Connect" pour établir la connexion à votre serveur
MongoDB.
f) Dans l'interface de Turbo 3T, vous verrez un panneau de navigation sur le côté
gauche qui vous permet d'explorer vos bases de données, collections, et
documents. Cliquez sur la base de données « Local »que vous souhaitez explorer
pour afficher ses collections.
g) Changez le mode de visualisation pour afficher le contenu de la collection
sélectionnée en mode arbre (tree), tableau (table), etc.
Pour l'instant, nous allons lancer nos requêtes au serveur au travers de la console mongo.
4. Commandes de gestion des bases de données sur MongoDB
- Lancez les commandes suivantes sur le client Mongo
a) show dbs permet de voir toutes les bases de données existantes,
b) use Unebase permet de se connecter à la base ’Unebase’ (et de la créer si elle n’existe
pas).
c) db.dropDatabase() pour supprimer la base de données courante ’Unebase’
d) db permet de savoir sur quelle base on se trouve (test est la base par défaut)
e) Créer une base nommée « maBase » à travers la commande use
f) Créer une collection « Movie » sous la base créée à travers la commande suivante :
db.createCollection(‘<nom de la collection>’)
g) Renommer le nom de la collection « Movie » pour être « Movies » à travers la
commande suivante :
db.nomcollection.renameCollection(' <NouveauNom> '))
Remarque : Toute opération sur une collection doit commencer par :
db.<nomCollection>.
5. Insertions, requêtes d’interrogation et d’importation/exportation
Soit le document suivant :
{"_id" : 3952,"title" :"Contender, The","genres" :"Drama|Thriller","year" :
2000,"actors" : [{"First_Name":"Gary", "Last_Name":"Oldman"}, {"First_Name":
"Joan","Last_Name":"Allen"},{"First_Name":"Jeff","Last_Name":"Bridges"}]
,"directors" : ["Rod Lurie"]}
a) Insérez ce document dans la collection Movies à l’aide de l’instruction suivante:
db.<nom de collection>.save(<Document JSon>)
b) Il est possible également de sauvegarder un document dans une variable, et ensuite de
l’utiliser :
D= {"_id" : 3951,"title" :"Two Family House","genres" :"Drama","year" :
2000,"actors" : [{"First_Name": "Michael", "Last_Name": "Rispoli"},
{"First_Name": "Kelly","Last_Name":"Macdonald"}, {"First_Name":"Kathrine",
"Last_Name":"Narducci"}],"directors" : ["Raymond De Felitta"]}
db.<nom de collection>.save(D);
c) Importez des documents JSON à travers l’exécutable mongoimport.
(Ce n’est pas une commande du mongo shell !!)
- Ouvrez une invite de commande (pas la console Mongo !!) et lancez la
commande suivante :
mongoimport -d <nom de base> -c <nom de collection> CheminFichier.json
Exemple : mongoimport -d maBase -c Movies G:\movies_mongodb.json
Remarque : Une clé va être générée et attribuée à chaque document importé.
d) Exportez les données d’une base de données peut se faire avec l’exécutable
mongoexport en écrasant tout fichier cible préexistant.
mongoexport -d <nom de base> -c <nom de collection> --out NomFichier.json -query docfiltre
.
Exemple :
>mongoexport --db maBase --collection Movies --out "C:\data\db\out.json"
6. Consultation du contenu
a) Listez les bases de données existantes :
show dbs
b) Affichez les données d’une collection
db.<nom de collection>.find().
Seuls les 20 premiers documents seront affichés. Utiliser la commande it pour afficher
les 20 suivants.
c) Pour un affichage de façon formatée Json, utiliser la commande db.<nom
de collection>.find().pretty()
d) Afficher la taille de la collection Movies
db.<nom de collection>.count()
e) Affichez les collections d’une base de données
show collections
f) Afficher le contenu de la collection Movies à travers Turbo 3T