Objectifs de la formation
- Installer et configurer MongoDB
- Installation du driver MongoDB pour .NET
- Manipuler les objets et les données dans MongoDB
- Implémenter une application sous MongoDB
- Créer des requêtes avec le pipeline d’agrégation
Programme de la formation
Introduction à MongoDB
- Bref historique des bases de données et de leurs modèles
- L’apparition du mouvement NoSQL
- Bref aperçu des types de bases NoSQL
- Introduction au SGBD MongoDB
- Différences entre les bases de données relationnelles et MongoDB
- Distribution maitre-esclave, cohérence finale
- Transaction et réplication asynchrone. Failover.
- Limite du modèle relationnel.
- Structuration forte versus structuration souple des données
- Des qualités ACID aux qualités BASE, théorème CAP et PACELC.
- La centralité des données
- La modélisation sous MongoDB
- Les différents formats utilisés par MongoDB : JSON, BSON
- Principes d’installation
- Les outils MongoDB
Travaux pratiques
- Installation de MongoDB sur son poste de développement
- Intégration de la base de données d’exemple
Connexion et utilisation de MongoDB
- Utilisation du shell Mongo
- Les bases, les collections, les documents et les espaces de noms
- Manipulation des objets et données : les opérations CRUD via le shell
- Le fichier .mongoshrc.js
Travaux pratiques
- Utilisation du shell Mongosh : connexion, lister les bases et collections
- Requêtes CRUD via le shell
- Personnaliser le prompt via le fichier .mongoshrc.js
Le driver C#
- Composantes et compatibilité de versions
- Connexion aux serveurs MongoDB et choix d’une base de données
- Les instructions CRUD via le driver en utilisant LINQ
- Intégration de MongoDB dans l’ORM Entity Framework, utilisation et limitations
Travaux pratiques
- Créer un projet dans son IDE C# et installation du driver et du provider pour l’Entity Framework
- Requêtes CRUD via le driver en utilisant LINQ
- Utilisation de l’Entity Framework
Modélisation et indexation
- Le schéma design : réflexion sur la modélisation à utiliser
- La validation de document
- L’indexation sous MongoDB : types et propriétés d’index, wildcard, requêtes couvertes et intersection d’index
- L’optimisation des requêtes et le profiling
- L’analyse des plans d’exécution
- Transactions et verrous
Travaux pratiques
- Conception d’un modèle de données MongoDB et des index associés pour un cas pratique
- Mise en place d’index sur la base d’exemple et analyse des performances et des plans d’execution avec le profiler et la fonction explain
Introduction à la réplication et au Sharding
- Réplication
- Introduction
- La réplication maître-esclave
- Fonctionnement de la bascule automatique du nœud maître
- Membres secondaires particuliers
- Principes de mise en place
- Notions liées au développement : ReadPreference, Consistance causale, ReadConcern, WriteConcern, Flux de changement
- Sharding
- Introduction
- Le sharding avec MongoDB
- Principes de mise en place et le choix des clés de shard
- La répartition manuelle des données : ShardTag, TagRange
Requêtes évoluées sous MongoDB
- Les requêtes géo-spatiales (optionnel)
- L’Aggregation Framework
- Les fonctions d’agrégation simple
- Le pipeline d’agrégation
- Principes
- Étapes simples : $match, $project, $sort, $skip, $limit
- Étapes de groupage : $group, $bucket, $bucketAuto, …
- Les expression d’accumulation : $count, $sum, $avg, $max, $min, $first, $last, $top, $bottom, …
- Les étapes de rapprochement de document : $lookup, $graphlookup
- Les étapes d’enregistrement du résultat : $out, $merge
Travaux pratiques
- Requêtes géo-spaciales (optionnel)
- Requêtes avec le pipeline d’agrégation et mise en parallèle avec le SQL