MongoDB
Comprendre et optimiser l'exploitation de vos données (avec exercices et corrigés)
Avant-propos
Chapitre 1
Introduction
1. Le Big Data et NoSQL7
2. MongoDB8
3. Les composants de MongoDB9
4. Architecture générale de MongoDB11
4.1 La mise à l'échelle11
4.2 Principe du sharding12
4.3 Les replica sets13
5. La notation JSON16
6. Les types de données18
7. MongoDB en ligne de commande19
7.1 Démarrer et arrêter MongoDB19
7.2 Se connecter à la base de données via le shell20
7.3 Créer une base de données26
7.4 Supprimer une base de données27
7.5 Interagir avec la base de données28
8. Gestion des collections29
8.1 Les collations29
8.2 Créer une collection31
8.3 Supprimer une collection32
8.4 Renommer une collection33
9. Gestion des documents35
9.1 Insérer un document35
9.2 Modifier un document40
9.3 Valider des documents49
9.4 Supprimer un document64
9.5 Remplacer un document66
10. Les capped collections67
10.1 Création d'une collection plafonnée68
10.2 Particularités des capped collections69
Chapitre 2
Effectuer des requêtes dans MongoDB
1. Chercher de l'information avec find et findOne73
2. Les opérateurs de comparaison75
3. Les opérateurs logiques78
3.1 L'opérateur $and78
3.2 L'opérateur $or80
3.3 L'opérateur $not80
3.4 L'opérateur $nor81
4. Autres opérateurs81
4.1 L'opérateur $expr81
4.2 L'opérateur $type83
4.3 L'opérateur $mod85
4.4 L'opérateur $where85
5. Opérateurs de tableaux87
5.1 Les tableaux de documents92
6. Le tri95
Chapitre 3
L'indexation avec MongoDB
1. Comment ça marche ?97
2. Index simples98
3. Index composés102
3.1 Préfixe d'un index103
4. Index uniques106
5. Indexation des objets et des tableaux108
6. Index géospatiaux109
6.1 Les index 2d110
6.2 Les index 2dsphere111
6.3 Les objets GeoJSON111
7. Index partiels119
8. Index TTL122
9. Index textuels126
9.1 Score d'un document131
9.2 Pondération des index133
9.3 Index wildcard135
10. Intersection des index136
11. La méthode explain139
11.1 Plans d'exécution des requêtes141
11.2 Explain appliqué à une collection142
12. Forcer l'utilisation d'un index avec hint149
Chapitre 4
Les requêtes géospatiales
1. Introduction151
2. L'opérateur (...)nearSphere152
3. L'opérateur (...)geoWithin158
4. L'opérateur (...)geoIntersects165
Chapitre 5
Le framework d'agrégation
1. Introduction169
2. Fonctionnement169
3. Les étapes du pipeline d'agrégation171
3.1 Le filtrage avec (...)match172
3.2 Sélectionner ou modifier les champs avec (...)project173
3.3 Ajouter des champs grâce à (...)addFields178
3.4 Le regroupement avec (...)group182
3.5 L'éclatement d'un tableau avec (...)unwind190
3.6 Regrouper et compter avec (...)sortByCount192
3.7 Les jointures de collection avec (...)lookup196
3.8 Rechercher récursivement avec (...)graphLookup206
3.9 La gestion des distances avec (...)geoNear221
3.10 Écrire le résultat d'un pipeline dans une collection avec (...)out227
4. Les étapes cursor-like229
4.1 Limitation des résultats avec (...)limit229
4.2 Le comptage avec (...)count230
4.3 Le tri avec (...)sort231
4.4 Le saut avec (...)skip233
5. Les opérateurs du pipeline d'agrégation233
5.1 Évaluer une expression avec (...)cond233
5.2 Parcourir et transformer les éléments d'un tableau avec (...)map234
5.3 Filtrer les éléments d'un tableau avec (...)filtrer236
6. La recherche par facettes237
6.1 L'étape (...)bucket241
6.2 L'étape (...)bucketAuto245
6.3 L'étape (...)facet247
Chapitre 6
Les vues
1. Introduction251
2. Créer une vue251
3. Interagir avec les vues255
Chapitre 7
Les transactions multidocuments
1. Introduction257
2. Les sessions266
3. Un exemple : la transaction bancaire269
4. Conflits d'écriture275
5. Limitation des transactions276
Chapitre 8
Gérer des fichiers binaires avec GridFS
1. Introduction279
2. Principe de fonctionnement279
3. Les collections chunks et files280
4. Utiliser mongofiles281
4.1 Ajouter un fichier à GridFS281
4.2 Lister les fichiers présents dans GridFS283
4.3 Chercher des fichiers depuis GridFS283
4.4 Télécharger un fichier depuis GridFS284
4.5 Supprimer un fichier stocké dans GridFS284
Chapitre 9
Importer, exporter et restaurer des données
1. Importer287
1.1 L'utilitaire mongoimport287
2. Exporter294
2.1 L'utilitaire mongodump294
2.2 L'utilitaire mogoexport295
3. Restaurer298
Chapitre 10
Exercices
1. Introduction303
2. Suppressions, insertions et mises à jour de documents305
3. Validation des documents308
4. Les index309
5. Requêtes géospatiales311
6. Le framework d'agrégation312
Chapitre 11
Corrigés des exercices
1. Suppressions, insertions et mises à jour de documents315
2. Validation des documents320
3. Les index325
4. Requêtes géospatiales327
5. Le framework d'agrégation329
Annexe
1. Créer un replica set333
Index335