0% ont trouvé ce document utile (0 vote)
109 vues4 pages

SGD TD2

Le document décrit des requêtes à effectuer sur deux collections MongoDB : une collection 'users' contenant des informations sur des utilisateurs, et une collection 'dblp' contenant des publications bibliographiques. Il présente différentes interrogations et mises à jour à réaliser sur ces collections.
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)
109 vues4 pages

SGD TD2

Le document décrit des requêtes à effectuer sur deux collections MongoDB : une collection 'users' contenant des informations sur des utilisateurs, et une collection 'dblp' contenant des publications bibliographiques. Il présente différentes interrogations et mises à jour à réaliser sur ces collections.
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

M1 Informatique

Systèmes de gestion de documents

TD 2 : Requêtes
Exercice 1 : Collection « users »
Nous travaillons ici sur une collection nommée « users » d'une base « users_sgd » donnant
des informations sur des personnes aux Etats-Unis.
Voici un exemple de document contenu dans cette collection :

{
"_id" : ObjectId("59db30b7cefd538f87302517"),
"age" : 58,
"name" : "Mcpherson Harrington",
"gender" : "male",
"email" : "[email protected]",
"phone" : "+1 (984) 454-2993",
"address" : {
"number" : 795,
"street" : "Elm Place",
"city" : "Byrnedale",
"state" : "Rhode Island",
"postal" : 374
},
"favoriteFruit" : "strawberry",
"hobbies" : ["cinema","cooking","poney"]
}

Donner les requêtes sur cette collection « users » permettant de :

Interrogation :

1. Compter le nombre d'éléments de cette collection.

2. Ajouter l'utilisateur suivant dans cette collection :


Bruce Lee, 33 ans, 57 rue de Vignes 21000 Dijon, hobbies : Karate, Kung-fu

3. Afficher ce nouvel utilisateur avec toutes les informations disponibles, puis avec
uniquement son nom.

4. Afficher les utilisateurs qui ont entre 30 et 40 ans.

5. Afficher uniquement les hommes entre 30 et 40 ans.

6. Afficher les utilisateurs habitant l'état de Rhode Island.


7. Afficher les 11 utilisateurs classés du dixième au vingtième lors de leur tri par ordre
décroissant d'âge.

8. Compter le nombre de femmes âgées de 40 ans.

Mise à jour de documents

9. Changer l'âge de « Bruce Lee » à 55 ans.

10. Ajouter le hobby « kickboxing » à tous les utilisateurs de plus de 50 ans.

11. Supprimer le champ « phone » de tous les documents.

12. Supprimer toutes les personnes qui aiment le poney.

Suppression d’une collection

13. Supprimer la collection « users ».

Exercice 2 : Collection DBLP

Le Digital Bibliography & Library Project (DBLP, littéralement « Projet de bibliothèque et


de bibliographie numérique ») est un site web publiant un catalogue de bibliographies en
informatique.
Nous travaillons sur la collection nommée « dblp » de la base « dblp_sgd » représentant un
extrait de la base DBLP. Voici trois exemples de documents contenus dans cette collection :
{
"_id" : "series/cogtech/BertonKHS06",
"type" : "Article",
"title" : "Speech Recognition.",
"pages" : {
"start" : 85,
"end" : 107
},
"year" : 2006,
"booktitle" : "SmartKom",
"url" : "db/series/cogtech/54023732.html#BertonKHS06",
"authors" : [ "André Berton", "Alfred Kaltenmeier", "Udo Haiber", "Olaf
Schreiner" ]
}
{
"_id" : "series/cogtech/364237376",
"type" : "Book",
"editor" : "Wolfgang Wahlster",
"title" : "SemProM - Foundations of Semantic Product Memories for the
Internet of Things",
"year" : 2013,
"publisher" : "Springer",
"series" : "Cognitive Technologies",
"booktitle" : "SemProM",
"url" : "db/series/cogtech/364237376.html",
"authors" : [],
"isbn" : [ "978-3-642-37376-3"]
}
{
"_id" : "books/daglib/0033466",
"type" : "Phd",
"title" : "Symmetric and efficient synthesis.",
"pages" : {
"start" : 1,
"end" : 195
},
"year" : 2013,
"authors" : [ "Rediger Ehlers" ]
}

Donner les requêtes sur cette collection « dblp » permettant de :

1. Compter le nombre de publications n'ont pas d'url renseignée (c’est-dire avec une
valeur vide que l’élément « url » n’est pas décrit dans le document.

2. Afficher les publications de “Toru Ishida” triées par titre et par page de début.

3. Afficher tous les auteurs distincts (sans doublon).

En utilisant le framework d’agrégation

4. Afficher tous les éditeurs (champs “publisher”) effectifs (c’est-à-dire différents de ""). Il
sera possible ici, de filtrer avec $match, et de grouper avec $group, pour éviter les
doublons, et n’avoir que le nom de l’éditeur en _id.

5. Compter le nombre de publications depuis 2011 et par type. Il est possible de filtrer
avec $match, grouper $group et compter avec $sum pour avoir éléments _id (qui est le
type) et total

6. Compter le nombre de publications de 2011 par auteur. Il est possible de filtrer avec
$match, « déplier » le tableau des auteurs, grouper et compter pour avoir les éléments
-id (qui est l’auteur) et total

7. Afficher l'auteur qui a le plus publié et également le nombre de ses publications. Il est
possible de « déplier » le tableau des auteurs, grouper et calculer le total, trier par
ordre décroissant sur le total et limiter à un élément.
8. Compter le nombre d'articles (de type Article) publiés chaque année, classés dans
l'ordre croissant d'articles ?

9. Compter le nombre total d'auteurs.Il est possible de « déplier » le tableau des auteurs,
grouper sur les auteurs (pour éviter les doublons) pour avoir des éléments -id (avec
l’auteur), puis sommer le tout (on peut utiliser -id : null, pour tout regrouper) pour avoir
cet _id et nb.

10. Afficher tous les auteurs dont le prénom est "Thomas".

11. Compter le nombre d'auteurs qui se prénomment "Thomas"

Mise à jour

12. Ajouter la clé "jury", dont la valeur est un tableau vide, aux publications de type "Phd".

13. Ajouter l'élément "Richard Genestier" dans le tableau "jury" des publications de type
"Phd".

14. Ajouter en une seule fois "Nadine Cullot", "Thierry Grison" et "Eric Leclercq" dans le
tableau "jury" des publications de type "Phd".

15. Supprimer "Thierry Grison" du tableau "jury" des publications de type "Phd".

16. Supprimer le dernier élément du tableau "jury" des publications de type "Phd".

17. Supprimer le premier élément du tableau "jury" des publications de type "Phd".

Vous aimerez peut-être aussi