SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
FONCTIONS D’AGRÉGATION
Mme Ines Slimene
Ines_slimene@yahoo.fr
match … Sort … Limit … Skip
o $match : Afficher les lignes qui correspondent a un critère bien déterminé
db.livres.aggregate([{ $match:{ year:2010}},{ $project:{ _id: 0, title: 1}}])
o $sort : ordonner une liste d’éléments
db.livres.aggregate([{ $sort:{ "year":-1}},{ $project:{ _id: 0, title: 1}}])
o $limit : afficher un nombre bien déterminé de documents
o $skip : sauter un nombre de documents
db.livres.aggregate([{$sort:{ "year":-1}},
{$project:{ _id: 0, title: 1}},
{$skip: 1},
{$limit: 2 }])
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 2
$Project : Chaine de caractères
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 3
Fonctions Exemples
$toLower/
$toUpper
db.livres.aggregate([{ $project:{ _id: 0, auteur:{ $toLower:
"$author"}, title:1}}])
$concat db.livres.aggregate([{ $project:{author:1,
title_description:{$concat:["$title","-","$description"]}}}])
$split db.livres.aggregate([{ $project:{_id: 0,
description:{$split:["$description"," "]}}}])
$substr db.livres.aggregate([{ $project:{_id:
0,description:{$substr:["$description",0,4]}}}])
$strLenBytes db.livres.aggregate([{ $project:{_id:
0,title:1,length:{$strLenBytes:"$title"}}}])
$Project : Fonctions numériques
Fonctions Exemples
$add db.livres.aggregate([{ $project:{ _id: 0,
likes:{$add:["$likes",3]}}}])
$multiply
$ceil db.livres.aggregate([{ $project:{ _id: 0,
likes:{$ceil:"$likes"}}}])
$floor
$trunc db.livres.aggregate([{ $project:{ _id: 0,
likes:{$trunc:"$likes"}}}])
$mod
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 4
$Project : Tableau
Fonctions Exemples
$arrayElemAt db.livres.aggregate([{ $project:{ _id: 0,
first:{$arrayElemAt:["$tags",0]}}}])
$reverseArray db.livres.aggregate([{ $project:{ _id: 0,
first:{$reverseArray:["$tags"]}}}])
$size db.livres.aggregate([{ $project:{ _id: 0,
size:{$size:["$tags"]}}}])
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 5
$Project : Fonctions date
Fonctions Exemples
$dayOfYear
$year db.livres.aggregate([{ $project:{ _id: 0,
year:{$year:"$date_pub"}}}])
$month db.livres.aggregate([{ $project:{ _id: 0,
year:{$month:"$date_pub"}}}])
$isoDayOfWeek db.livres.aggregate([{ $project:{ _id: 0,
year:{$isoDayOfWeek:"$date_pub"}}}])
$isoWeek
$dateToString
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 6
Fonctions d’agrégation
o Afficher le nombre de livre par auteur :
db.livres.aggregate([{$group:{_id:"$author",
nbr_livre:{$sum:1}}}])
Select count(*) nbr_livre FROM livres GROUP BY author
o Afficher le nombre de livre par nom_auteur par annee
db.livres.aggregate([{$group:{_id:{nom_auteur :"$author",
annee :"$date_pub"},nbr_livre:{$sum:1}}}])
SELECT count(*) nbr_livre FROM livres GROUP BY nom_auteur, date_pub
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 7
Fonctions d’agrégation
db.livres.aggregate([{$group:{_id:"$author",sum_likes:{$sum:"$likes"}}}])
Select sum(likes) sum_likes from livres group by author
db.livres.aggregate([{$group:{_id:{},avg_like:{$avg:"$likes"}}}])
Select avg(likes) avg_like from livres
db.livres.aggregate([{$group:{_id:{},max_like:{$max:"$likes"}}}])
Select max(likes) max_like from livres
db.livres.aggregate([{$group:{_id:"$year",min_like:{$min:"$likes"}}}])
Select min(likes) min_like from livres group by year
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 8
Fonctions d’agrégation : $first et $last
$first et $last sont des fonctions de groupe qui permettent d’avoir la première et la dernière
valeur de chaque groupe.
Utilisées généralement avec la function $sort.
db.livres.aggregate([{ $group: { _id: "$date_pub", auteur:{ $first:
"$author"}}}])
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 9
Construction d’un tableau
o $addToSet: Afficher la liste des livres par auteur. Pas de duplication des valeurs.
db.livres.aggregate([{$group:{_id:"$author", livres:{$addToSet:"$title"}}}])
o $push: similaire à $addToSet, mais duplication des valeurs.
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 10
Foreign Key : $lookup
db.conference.aggregate( [ {"$lookup": {from: "speaker",localField:
"speaker_id",foreignField: "_id",as: "speaker_infos"} } ] )
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 11
$unwind … $out
o $unwind : séparer les éléments d’un tableau
db.livres.aggregate([{$unwind:"$tags"},{$group:{_id:"$_id",nbre_tags:{$
sum:1}}}]);
o $out : Récupérer le résultat d’agrégation dans une autre collection
db.livres.aggregate([{$unwind:"$tags"},{$group:{_id:"$_id",nbre_tags:{$
sum:1}}},{$out: "results"}])
db.results.find()
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 12
Options d’agrégation
o Analyse de l’agrégation :
db.livres.aggregate([{$group:{_id:"$author",nbr_livre:{$su
m:1}}}],{explain:true})
o Gestion de l’agrégation sur le disque et non dans l’espace mémoire (cas ou le
résultat dépasse 100M)
db.livres.aggregate([{$group:{_id:"$author",nbr_livre:{$su
m:1}}}],{allowDiskUse:true})
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 13
Limites de l’Agrégation
Résultat limité à 16 MB d’espace mémoire
Peut utiliser au maximum 10% de l’espace mémoire d’une machine; utiliser $match pour filtrer
les résultats, et utilizer $project pour choisir quelques champs.
sharding, c’est la répartition des collections entre plusieurs instances de Mongo, avec un routeur
mongos, l'agrégation fonctionne sur un environnement fragmenté, mais après le premier stade
$group ou $sort , l’agrégation doit être ramené aux mongos, afin qu'il puisse recueillir les
résultats avant de les envoyer pour la prochaine étape du pipeline (qui a besoin de voir le
résultat final)
mapreduce est une alternative de l’agrégation
Hadoop est aussi une alternative de l’agrégation; il y a un connecteur entre Hadoop et
MongoDB.
https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 14

Contenu connexe

Tendances

Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Tarik Zakaria Benmerar
 
Slides de la Localisation
Slides de la LocalisationSlides de la Localisation
Slides de la LocalisationCocoaHeads.fr
 
Javascript objet : que fait ce code ?
Javascript objet : que fait ce code ?Javascript objet : que fait ce code ?
Javascript objet : que fait ce code ?Ruau Mickael
 
Graphgen - le générateur de graphes
Graphgen - le générateur de graphesGraphgen - le générateur de graphes
Graphgen - le générateur de graphesChristophe Willemsen
 
Atelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWikiAtelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWikiKorteby Farouk
 
Jquery - introduction au langage
Jquery - introduction au langageJquery - introduction au langage
Jquery - introduction au langageStrasWeb
 
Jug algeria x wiki-atelier
Jug algeria x wiki-atelierJug algeria x wiki-atelier
Jug algeria x wiki-atelierAlgeria JUG
 

Tendances (13)

Mp dv employment_081705
Mp dv employment_081705Mp dv employment_081705
Mp dv employment_081705
 
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
Design patterns et Design Emergeant - Micro Days - Modern Software Developmen...
 
Slides de la Localisation
Slides de la LocalisationSlides de la Localisation
Slides de la Localisation
 
Js part2
Js part2Js part2
Js part2
 
Javascript objet : que fait ce code ?
Javascript objet : que fait ce code ?Javascript objet : que fait ce code ?
Javascript objet : que fait ce code ?
 
Php1
Php1Php1
Php1
 
Graphgen - le générateur de graphes
Graphgen - le générateur de graphesGraphgen - le générateur de graphes
Graphgen - le générateur de graphes
 
Atelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWikiAtelier : Développement rapide d’une application basée surXWiki
Atelier : Développement rapide d’une application basée surXWiki
 
Introduction a jQuery
Introduction a jQueryIntroduction a jQuery
Introduction a jQuery
 
Php Data Object
Php Data ObjectPhp Data Object
Php Data Object
 
Jquery - introduction au langage
Jquery - introduction au langageJquery - introduction au langage
Jquery - introduction au langage
 
Jug algeria x wiki-atelier
Jug algeria x wiki-atelierJug algeria x wiki-atelier
Jug algeria x wiki-atelier
 
PHP & MySQL
PHP & MySQLPHP & MySQL
PHP & MySQL
 

Similaire à Agregation

Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfOumaimaZiat
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormMickael Perraud
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab ElasticsearchDavid Pilato
 
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...MongoDB
 
Retour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documentsRetour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documentsMongoDB
 

Similaire à Agregation (8)

Apprenez le jQuery
Apprenez le jQueryApprenez le jQuery
Apprenez le jQuery
 
introduction à MongoDB
introduction à MongoDBintroduction à MongoDB
introduction à MongoDB
 
Corrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdfCorrigé TP NoSQL MongoDB (5).pdf
Corrigé TP NoSQL MongoDB (5).pdf
 
Tirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_FormTirer parti des décorateurs de Zend_Form
Tirer parti des décorateurs de Zend_Form
 
Hands on lab Elasticsearch
Hands on lab ElasticsearchHands on lab Elasticsearch
Hands on lab Elasticsearch
 
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
Webinaire 4 de la série Retour aux fondamentaux : Indexation avancée, index d...
 
Retour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documentsRetour aux fondamentaux : Penser en termes de documents
Retour aux fondamentaux : Penser en termes de documents
 
SQL partie III
SQL partie IIISQL partie III
SQL partie III
 

Plus de Ines Slimene (15)

Spark
SparkSpark
Spark
 
Redis
RedisRedis
Redis
 
Crud
CrudCrud
Crud
 
Cassandra
CassandraCassandra
Cassandra
 
Pig
PigPig
Pig
 
Neo4j
Neo4jNeo4j
Neo4j
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
Introduction
IntroductionIntroduction
Introduction
 
Intro mongodb
Intro mongodbIntro mongodb
Intro mongodb
 
Hive
HiveHive
Hive
 
Hdfs
HdfsHdfs
Hdfs
 
Hbase
HbaseHbase
Hbase
 
Hadoop
HadoopHadoop
Hadoop
 
Indexation
IndexationIndexation
Indexation
 

Dernier

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdfMariaClaraAlves46
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesUnidad de Espiritualidad Eudista
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesMohammedAmineHatoch
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfGamal Mansour
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkRefRama
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcourshalima98ahlmohamed
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 

Dernier (20)

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 

Agregation

  • 1. FONCTIONS D’AGRÉGATION Mme Ines Slimene Ines_slimene@yahoo.fr
  • 2. match … Sort … Limit … Skip o $match : Afficher les lignes qui correspondent a un critère bien déterminé db.livres.aggregate([{ $match:{ year:2010}},{ $project:{ _id: 0, title: 1}}]) o $sort : ordonner une liste d’éléments db.livres.aggregate([{ $sort:{ "year":-1}},{ $project:{ _id: 0, title: 1}}]) o $limit : afficher un nombre bien déterminé de documents o $skip : sauter un nombre de documents db.livres.aggregate([{$sort:{ "year":-1}}, {$project:{ _id: 0, title: 1}}, {$skip: 1}, {$limit: 2 }]) https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 2
  • 3. $Project : Chaine de caractères https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 3 Fonctions Exemples $toLower/ $toUpper db.livres.aggregate([{ $project:{ _id: 0, auteur:{ $toLower: "$author"}, title:1}}]) $concat db.livres.aggregate([{ $project:{author:1, title_description:{$concat:["$title","-","$description"]}}}]) $split db.livres.aggregate([{ $project:{_id: 0, description:{$split:["$description"," "]}}}]) $substr db.livres.aggregate([{ $project:{_id: 0,description:{$substr:["$description",0,4]}}}]) $strLenBytes db.livres.aggregate([{ $project:{_id: 0,title:1,length:{$strLenBytes:"$title"}}}])
  • 4. $Project : Fonctions numériques Fonctions Exemples $add db.livres.aggregate([{ $project:{ _id: 0, likes:{$add:["$likes",3]}}}]) $multiply $ceil db.livres.aggregate([{ $project:{ _id: 0, likes:{$ceil:"$likes"}}}]) $floor $trunc db.livres.aggregate([{ $project:{ _id: 0, likes:{$trunc:"$likes"}}}]) $mod https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 4
  • 5. $Project : Tableau Fonctions Exemples $arrayElemAt db.livres.aggregate([{ $project:{ _id: 0, first:{$arrayElemAt:["$tags",0]}}}]) $reverseArray db.livres.aggregate([{ $project:{ _id: 0, first:{$reverseArray:["$tags"]}}}]) $size db.livres.aggregate([{ $project:{ _id: 0, size:{$size:["$tags"]}}}]) https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 5
  • 6. $Project : Fonctions date Fonctions Exemples $dayOfYear $year db.livres.aggregate([{ $project:{ _id: 0, year:{$year:"$date_pub"}}}]) $month db.livres.aggregate([{ $project:{ _id: 0, year:{$month:"$date_pub"}}}]) $isoDayOfWeek db.livres.aggregate([{ $project:{ _id: 0, year:{$isoDayOfWeek:"$date_pub"}}}]) $isoWeek $dateToString https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 6
  • 7. Fonctions d’agrégation o Afficher le nombre de livre par auteur : db.livres.aggregate([{$group:{_id:"$author", nbr_livre:{$sum:1}}}]) Select count(*) nbr_livre FROM livres GROUP BY author o Afficher le nombre de livre par nom_auteur par annee db.livres.aggregate([{$group:{_id:{nom_auteur :"$author", annee :"$date_pub"},nbr_livre:{$sum:1}}}]) SELECT count(*) nbr_livre FROM livres GROUP BY nom_auteur, date_pub https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 7
  • 8. Fonctions d’agrégation db.livres.aggregate([{$group:{_id:"$author",sum_likes:{$sum:"$likes"}}}]) Select sum(likes) sum_likes from livres group by author db.livres.aggregate([{$group:{_id:{},avg_like:{$avg:"$likes"}}}]) Select avg(likes) avg_like from livres db.livres.aggregate([{$group:{_id:{},max_like:{$max:"$likes"}}}]) Select max(likes) max_like from livres db.livres.aggregate([{$group:{_id:"$year",min_like:{$min:"$likes"}}}]) Select min(likes) min_like from livres group by year https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 8
  • 9. Fonctions d’agrégation : $first et $last $first et $last sont des fonctions de groupe qui permettent d’avoir la première et la dernière valeur de chaque groupe. Utilisées généralement avec la function $sort. db.livres.aggregate([{ $group: { _id: "$date_pub", auteur:{ $first: "$author"}}}]) https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 9
  • 10. Construction d’un tableau o $addToSet: Afficher la liste des livres par auteur. Pas de duplication des valeurs. db.livres.aggregate([{$group:{_id:"$author", livres:{$addToSet:"$title"}}}]) o $push: similaire à $addToSet, mais duplication des valeurs. https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 10
  • 11. Foreign Key : $lookup db.conference.aggregate( [ {"$lookup": {from: "speaker",localField: "speaker_id",foreignField: "_id",as: "speaker_infos"} } ] ) https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 11
  • 12. $unwind … $out o $unwind : séparer les éléments d’un tableau db.livres.aggregate([{$unwind:"$tags"},{$group:{_id:"$_id",nbre_tags:{$ sum:1}}}]); o $out : Récupérer le résultat d’agrégation dans une autre collection db.livres.aggregate([{$unwind:"$tags"},{$group:{_id:"$_id",nbre_tags:{$ sum:1}}},{$out: "results"}]) db.results.find() https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 12
  • 13. Options d’agrégation o Analyse de l’agrégation : db.livres.aggregate([{$group:{_id:"$author",nbr_livre:{$su m:1}}}],{explain:true}) o Gestion de l’agrégation sur le disque et non dans l’espace mémoire (cas ou le résultat dépasse 100M) db.livres.aggregate([{$group:{_id:"$author",nbr_livre:{$su m:1}}}],{allowDiskUse:true}) https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 13
  • 14. Limites de l’Agrégation Résultat limité à 16 MB d’espace mémoire Peut utiliser au maximum 10% de l’espace mémoire d’une machine; utiliser $match pour filtrer les résultats, et utilizer $project pour choisir quelques champs. sharding, c’est la répartition des collections entre plusieurs instances de Mongo, avec un routeur mongos, l'agrégation fonctionne sur un environnement fragmenté, mais après le premier stade $group ou $sort , l’agrégation doit être ramené aux mongos, afin qu'il puisse recueillir les résultats avant de les envoyer pour la prochaine étape du pipeline (qui a besoin de voir le résultat final) mapreduce est une alternative de l’agrégation Hadoop est aussi une alternative de l’agrégation; il y a un connecteur entre Hadoop et MongoDB. https://inesslimene.wixsite.com/moncours MNGODB:AGRÉGATION 14