Résumé des TP NoSQL pour Révision
Cours BD NoSQL
October 27, 2025
Contents
1 TP1 : Conception NoSQL pour une vidéothèque 2
1.1 Commandes MongoDB principales . . . . . . . . . . . . . . . . . . . . . . 2
2 TP2 : Gestion de la collection Produits 2
2.1 Insertion de documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Requêtes de sélection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Requêtes par expressions régulières . . . . . . . . . . . . . . . . . . . . . 3
2.4 Mise à jour et suppression . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 TP3 : Gestion des employés (Collection Employee) 3
3.1 Insertion et affichage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2 Filtres avancés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.3 Mises à jour et agrégations . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1
1 TP1 : Conception NoSQL pour une vidéothèque
1.1 Commandes MongoDB principales
• Créer la collection : [Link](”video store”)
• Insérer un document : [Link] store .insertOne(document)
• Insérer plusieurs documents : [Link] store .insertMany([doc1, doc2])
• Afficher tous les documents : [Link] store . find ()
• Mise à jour : [Link] store .updateMany({}, {$set:{length:120}})
• Renommer un champ : [Link] store .updateMany({},{$rename:{category:”type”}})
• Filtres par champ : [Link] store . find({year:2004})
2 TP2 : Gestion de la collection Produits
2.1 Insertion de documents
db . produit . insertOne ({
" nom " : " Macbook Pro " ,
" fabriquant " : " Apple " ,
" prix " : 11435.99 ,
" options " : [ " Intel Core i5 " , " Retina Display " , " Long life
battery " ]
})
document1 = {
" nom " : " Macbook Air " ,
" fabriquant " : " Apple " ,
" prix " : 125794.73 ,
" ultrabook " : true ,
" options " : [ " Intel Core i7 " , " SSD " , " battery " ]
}
db . produit . insertOne ( document1 )
2.2 Requêtes de sélection
• Premier document : [Link]()
• Tous les fabricants distincts : [Link]. distinct (”fabriquant”)
• Filtre par prix : [Link]({prix : {$gt: 13723}}, { id:0})
• Premier produit ultrabook : [Link]({ultrabook:true},{nom:1, id :0}). limit (1)
• Tri par prix : [Link] (). sort({prix:1})
2
2.3 Requêtes par expressions régulières
• Nom contenant Macbook : [Link]({nom:/Macbook/}).limit(1)
• Nom commençant par Macbook : [Link]({nom:/ˆMacbook/},{ id:0,nom:1,prix:1}).sort({
• Nom se terminant par Pro : [Link]({nom:/Pro$/}).limit(1)
2.4 Mise à jour et suppression
• Modifier prix : [Link]({nom:”Macbook Air”},{$set:{prix:125795}})
• Modifier fabriquant : [Link]({nom:/ˆMacbook/},{$set:{fabriquant:”Apple Entr
• Remplacer un document : [Link]({nom:”Macbook Pro”}, document)
• Supprimer par fabriquant : [Link]({fabriquant:”Apple”})
• Supprimer par id : [Link]({ id:ObjectId(”...”)})
3 TP3 : Gestion des employés (Collection Employee)
3.1 Insertion et affichage
• Créer DB : use Company
• Créer collection : [Link](”Employee”)
• Insérer plusieurs employés : [Link]([...])
• Afficher tous : [Link]()
• Nombre de documents : [Link]()
3.2 Filtres avancés
• Premier nom commençant par A : [Link]({Fname:/ˆA/})
• Nom commençant et finissant par voyelle : [Link]({Fname:{$regex:”ˆ[AEIOUaeiou][AE
• Seniority ¿ 10 : [Link]({ professionalseniority :{$gt:10}},{Name:1,Fname:1, id:0})
• Trier par seniority : [Link]().sort({ professionalseniority :−1}).limit (3)
3
3.3 Mises à jour et agrégations
• Mettre à jour adresse : [Link]({Name:”Tlili”,Fname:”Aline”},{$set:{address:{N
• Somme des seniority par ville :
db . Employee . aggregate ([
{ $group :{ _id : " $address . city " , totalSeniority :{ $sum : "
$ p r o f e s s i o n a l s e n i o r i t y " }}}
])
db . Employee . aggregate ([
{ $group :{ _id : " $address . city " , totalSeniority :{ $sum : "
$ p r o f e s s i o n a l s e n i o r i t y " }}} ,
{ $sort :{ totalSeniority : -1}}
])