TP - Introduction à MongoDB¶

Ce TP a pour but de se familiariser avec les bases de données document, au travers de MongoDB.

Partie 1 - Manipulation de données avec MongoDB¶

Un fichier pathologies.json vous est fourni, contenant des données sur les pathologies issues de la Caisse nationale de l'Assurance Maladie. Nous allons utiliser MongoDB pour faire des requêtes sur ces données.

In [ ]:
!pip install pandas pymongo --quiet
In [ ]:
import pymongo
import pandas as pd

# Remplacer l'URI par celle sur MongoDB Atlas, en n'oubliant pas de remplacer le nom de l'utilisateur, le mot de passe et le nom du cluster
URI = 'mongodb+srv://<user_name>:<password>@<cluster_name>.mongodb.net/?retryWrites=true&w=majority&appName=<cluster_name>'
client = pymongo.MongoClient(URI)
db = client.tp

# Afficher le nom des collections de la base de données et la collection pathologies
print("Collections: ", db.list_collection_names())
print("Pathologies: ", db.pathologies)
  1. Quelles sont les pathologies de niveau 1 présentes dans la base de données ?
In [ ]:
 
  1. Lister toutes les catégories de pathologies de niveau 2
In [ ]:
 
  1. Combien y a-t-il de personnes avec une pathologie "Maladies cardioneurovasculaires" ?
In [ ]:
 
  1. Compter le nombre de documents concernant la tranche d'âge "45-49 ans"
In [ ]:
 
  1. Compter le nombre de documents où la prévalence (prev) est supérieure à 0.2
In [ ]:
 
  1. Lister tous les documents, en n'affichant que l'année, la pathologie de niveau 1, la région et le département
In [ ]:
 
  1. Lister toutes les pathologies de niveau 3 pour les femmes (sexe=2), en affichant seulement la pathologie et la classe d'âge.
In [ ]:
 
  1. Lister les pathologies pour les régions "32" ou "44", en affichant la pathologie de niveau 1, le département et la prévalence
In [ ]:
 
  1. Afficher les pathologies de niveau 2, la région et le niveau de priorité.
In [ ]:
 
  1. Lister les pathologies où la prévalence est nulle (prev: null), en affichant la pathologie de niveau 3, la région et le département
In [ ]:
 

Partie 2 - Agrégation de données avec MongoDB¶

Maintenant que nous avons vu comment faire des requêtes simples, nous allons voir comment faire des agrégations de données, c'est-à-dire des requêtes plus complexes qui permettent de faire des calculs sur les données.

  1. Quelles sont les 10 plus grandes chaînes de restaurants (i.e les restaurants avec un nom identique) ?
In [ ]:
 
  1. Donner le Top 5 des types de cuisine, en termes de nombre de restaurants.
In [ ]:
 
  1. Donner le Flop 5 des types de cuisine, en termes de nombre de restaurants.
In [ ]:
 
  1. Quelles sont les 10 rues avec le plus de restaurants ?
In [ ]:
 
  1. Quelles sont les restaurants situés sur strictement plus de 2 quartiers ? Essayez d'ajouter le nom des quartiers de chaque rue (cf addToSet).
In [ ]:
 
  1. Lister par quartier le nombre de restaurants et le score moyen. Attention à bien découper le tableau grades
In [ ]:
 
  1. Donner les dates de début et de fin des évaluations
In [ ]:
 
  1. Quels sont les 10 restaurants (nom, quartier, adresse et score) avec le plus petit score moyen ?
In [ ]:
 
  1. Quels sont les restaurants (nom, quartier et adresse) avec uniquement des grades A ?
In [ ]:
 
  1. Compter le nombre d'évaluations par jour de la semaine.
In [ ]: