0% ont trouvé ce document utile (0 vote)
8 vues2 pages

TP MongoDB : Agrégation et Jointures

Ce TP sur MongoDB se concentre sur des opérations avancées telles que l'utilisation de la fonction aggregate() et des pipelines. Les étudiants apprendront à manipuler des stages comme $match et $group, ainsi qu'à effectuer des jointures avec $lookup. Des exercices pratiques incluent la projection de données, le filtrage, le tri, et le calcul d'agrégats sur des collections de livres.

Transféré par

rawaasejil8
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues2 pages

TP MongoDB : Agrégation et Jointures

Ce TP sur MongoDB se concentre sur des opérations avancées telles que l'utilisation de la fonction aggregate() et des pipelines. Les étudiants apprendront à manipuler des stages comme $match et $group, ainsi qu'à effectuer des jointures avec $lookup. Des exercices pratiques incluent la projection de données, le filtrage, le tri, et le calcul d'agrégats sur des collections de livres.

Transféré par

rawaasejil8
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ministère de l’enseignement supérieur et de la recherche scientifique

Institut supérieur des études technologiques de Bizerte


Atelier No SQL
TP 2 – MongoDB (2/2)
Enseignante : Safa MAHOUACHI

1. Introduction
Ce TP porte sur les opérations avancées avec MongoDB. A la fin de ce TP, vous serez capable de :

• Utiliser la fonction aggregate() et comprendre la logique des pipelines.


• Manipuler les stages principaux : $match, $project, $group, $sort, $limit.
• Exploiter des opérateurs d’agrégation simples ($sum, $avg, $max, $min, $count, etc.).
• Faire des groupages et calculs d’agrégats.
• Utiliser $lookup pour réaliser des jointures entre collections.

2. Documentation
Pour ce TP, référez-vous au cours disponible à travers le lien suivant : [Link]
nosql-mongodb

N’hésitez pas à consulter ce lien pour consulter les opérations MongoDB

3. Travail à faire
3.1. Préparation de l’environnement

Importer le fichier [Link] et vérifier que l’import est effectué avec succès.

3.2. Premiers pipelines

a) Projection : Afficher uniquement le title, isbn et pageCount de chaque livre.


b) Filtrage avec $match : Afficher les livres de plus de 500 pages.
c) Tri avec $sort : Trier les livres par publishedDate décroissante.
d) Combinaison de stages : Les 5 livres les plus récents, ne montrer
que title et publishedDate.

3.3. Groupage et agrégats

e) Compter combien de livres par catégorie (categories).


f) Moyenne du nombre de pages par catégorie.
g) Nombre total de pages publiées par auteur.

3.4. Opérateurs avancés

h) Trouver le livre le plus long (max pages).


i) Nombre de livres publiés par année (extraction avec $year).
Remarque, convertir le type de “publishedDate” en ISODate en utilisant le script suivant:

[Link]().forEach(doc => {
if ([Link] && [Link].$date) {
[Link](
{ _id: doc._id },
NoSQL – Safa MAHOUACHI Page 1
~Bon travail~
{ $set: { publishedDate: new Date([Link].$date) } }
)
}
})

3.5. Jointures avec $lookup

Créer une nouvelle collection [Link] puis l’importer. Associer ensuite les livres aux
éditeurs (ajouter un champ "publisherId" dans quelques livres de [Link]).

[
{ "_id": 1, "name": "Manning", "country": "USA" },
{ "_id": 2, "name": "O’Reilly", "country": "USA" },
{ "_id": 3, "name": "Eyrolles", "country": "France" }
]

j) Afficher chaque livre avec son éditeur, n’afficher que le titre et l’éditeur. Puis modifier la
requête pour afficher seulement le titre et le nom de l’éditeur de chaque livre.
k) Compter combien de livres par éditeur
l) Top 5 auteurs les plus productifs (par nombre de livres).
m) L’éditeur ayant publié plus de livres
n) Répartition des livres par catégorie.

NoSQL – Safa MAHOUACHI Page 2


~Bon travail~

Vous aimerez peut-être aussi