0% ont trouvé ce document utile (0 vote)
155 vues5 pages

TP1 Correction

Ce document décrit plusieurs exercices sur MongoDB. Il présente comment créer et manipuler des collections, schémas et documents. Les exercices montrent l'insertion de données dans des collections ainsi que la proposition de modèles de données embarqués et normalisés.

Transféré par

khliaissa46
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)
155 vues5 pages

TP1 Correction

Ce document décrit plusieurs exercices sur MongoDB. Il présente comment créer et manipuler des collections, schémas et documents. Les exercices montrent l'insertion de données dans des collections ainsi que la proposition de modèles de données embarqués et normalisés.

Transféré par

khliaissa46
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

Université de Mostaganem

M2, IA4IOT, 2023-2024


Module Gestion des données massives
TP1
Partie 01 : NoSQL MongoDb

Exercice 1(collections) : effectuer les étapes suivantes sous MongoDB :


1. Dans la base de données test créer la collection « mycollection »
2. Afficher la liste des collections
3. Créer une collection indexé nommé « mycol » dont sa taille ne doit pas dépasser 6142800
byte et le nombre de documents maximum est 10000
4. Supprimer la collection « mycollection »
Solution :
>use test
1 >[Link]("mycollection")
2 > show collections
3 > [Link]("mycol", { capped : true, autoIndexID : true, size : 6142800,
4 > [Link]()

Exercice 2 : Soit les exigences ci-dessous d’une conception d’une base de données d’un site Web.
− Chaque article (post) a un titre, une description et une URL uniques.
− Chaque post peut avoir un ou plusieurs tags.
− Chaque post a le nom de son éditeur et le nombre total de likes.
− Chaque post contient des commentaires donnés par les utilisateurs avec leur nom, leur
message, leur temps de données et leurs likes
− Sur chaque post, il peut y avoir zéro ou plusieurs commentaires.
1. Proposer le schéma RDBMS
2. Proposer le schéma MongoDB
Solution :
1. Schéma RDBMS

1. Schéma MongoDB
Le schéma MongoDB est constitué d’une seule collection comme suit :
{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:'COMMENT_BY',

1
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}
Exemple :
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: '[Link]
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
Exercice 3:
Soit un employé nommé LARBI Mohamed né le 26/09/1995 travail dans une société qui lui attribut
l’identifiant «10025AE336 ». Les contacts de l’employé sont son
email « larbi_mohamed.123@[Link]” et son numéro de téléphone « 9848022338 ». L’adresse de
l’employer est déterminée par cité 5 juillet Kherouba, Mostaganem.
1. Proposer le modèle de données embarqué (dénormalisé)
2. Proposer le modèle de données normalisé

Solution :
1. Modèle de données embarqué (dénormalisé)
{
_id: ,
Emp_ID: "10025AE336"
Personal_details:{
First_Name: "Mohamed" le
Last_Name: "Larbi",
Date_Of_Birth: "1995-09-26"
},
Contact: {
e-mail: " larbi_mohamed.123@[Link]",

2
phone: "9848022338"
},
Address: {
city: " 5 juillet ",
Area: " Kherouba ",
Wilaya: " Mostaganem "
}
}
2. Modèle de données normalisé
Employee:
{
_id: <ObjectId101>,
Emp_ID: "10025AE336"
}
Personal_details:
{
_id: <ObjectId102>,
empDocID: " ObjectId101",
First_Name: "Mohamed" le
Last_Name: "Larbi",
Date_Of_Birth: "1995-09-26"
}
Contact:
{
_id: <ObjectId103>,
empDocID: " ObjectId101",
e-mail: " larbi_mohamed.123@[Link]",
phone: "9848022338"
}
Address:
{
_id: <ObjectId104>,
empDocID: " ObjectId101",
city: " 5 juillet ",
Area: " Kherouba ",
Wilaya: " Mostaganem "
}
Exercice 4
Soit une base de données appelé AutoMobile.
1. créer une collection nommée voiture et insérer les données suivantes : nom = The Favourite,
nom: "Fiat 500",
Modèle: “500 Dolcevita Opening edition”,Moteur: 1.0 Hybrid 70ch, Energie: Hybride Essence,
Vitesse max :167km/h, Couleurs : “Bossanova white”, “Epic Blue”, “Rugiada Green”,
“Pasodoble Red”, “Crossover black”.
[Link] les données de 2 voitures (dans le même code). Les coordonnées de la première voiture
sont comme suit : nom: " SKODA FABIA FACELIFT", Modèle: “Fabia Facelift Ambition”, Moteur:
1.6 MPi 90 ch, Energie: Essence, Vitesse max : " 190km/h", Couleurs : “Rugiada Green”,
“Pasodoble Red”, “Crossover black”. Les coordonnées de la deuxième voiture sont comme
suit : nom: " HYUNDAI I20 ", Modèle: “Hyundai i20 facelift 1.4 ess 100ch BVA”, Moteur: 1.4 ess
100ch BVA, Energie: Essence, Vitesse max : " 170km/h", Couleurs : “Epic Blue”, “Pasodoble
Red”, “Crossover black”

3
Solution :
1)
use AutoMobile
[Link](
{
nom: "Fiat 500",
Modèle: "500 Dolcevita Opening edition",
Moteur: "1.0 Hybrid 70ch",
Energie: "Hybride Essence",
Vitesse_max : "167km/h",
Couleurs : ["Bossanova white", "Epic Blue", "Rugiada Green", "Pasodoble
Red", "Crossover black"]
}
)
2)
[Link]([
{
nom: " SKODA FABIA FACELIFT",
Modèle: "Fabia Facelift Ambition",
Moteur: "1.6 MPi 90 ch",
Energie: "Essence",
Vitesse_max : " 190km/h",
Couleurs : [ "Rugiada Green", "Pasodoble Red", "Crossover black"]
},
{
nom: " HYUNDAI I20 ",
Modèle: "Hyundai i20 facelift 1.4 ess 100ch BVA",
Moteur: "1.4 ess 100ch BVA",
Energie: "Essence",
Vitesse_max : " 170km/h",
Couleurs : [ "Epic Blue", "Pasodoble Red", "Crossover black"]
}
])

Exercice 5
Proposer le contenu de l’objet constructeur d’une liste d'opérations d'écriture à effectuer en bloc du
schéma mongodb de l’exercice 2avec les exigences suivantes :
• Le tableau de documents qui contient des informations concernant toute erreur est vide.
• Le document qui décrit l'erreur liée au problème d'écriture est vide.
• Le nombre de documents insérés à l'aide de la méthode [Link]()est 2.
• Le nombre de documents insérés via des opérations avec l'option [Link]() est
0.
• Le nombre de documents existants sélectionnés pour la mise à jour ou le remplacement est 0
• Le nombre de documents existants mis à jour ou remplacés est 0.
• Le nombre de documents supprimés est 0.
• Le nombre de documents insérés via des opérations avec l'option [Link]()est
vide.
Solution :
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,

4
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
Exercice 5 : Que représente le script suivant :
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5dd631f270fb13eec3963bed"),
ObjectId("5dd631f270fb13eec3963bee"),
ObjectId("5dd631f270fb13eec3963bef")
]
}
Solution : Création de 3 objets dans un document avec une opération s'est exécutée avec un problème
d'écriture.

Vous aimerez peut-être aussi