Aller au contenu

Exercices


Exercice 1 💻

Répondre aux questions suivantes :

  1. Quels restaurants contiennent des chiffres dans leurs noms ?
  2. Quels sont les noms et identifiants (restaurant_id) des restaurants qui n'ont pas reçu de score > 6?
  3. Chercher pour chaque restaurant son score minimal et maximal triés par le score minimal croissant puis le score maximal décroissant.
  4. Comment enregistrer la réponse de la question 2 dans une collection appelée "q2".
  5. Ajouter l'adresse à chaque restaurant de cette collection.

Exercice 2 💻

  • Créer une bases de données portant le nom "meteo".
  • Importer, avec Compass, le fichier weather_tunisie.json dans une collection appelée «tunisie». (Cliquer sur le lien pour télécharger le fichier). La structure des documents est la suivante :
    {
        "_id":{"$oid":"61b665de7e8b7517e3d478bd"},
        "lat":33.5444, //latitude
        "lon":9.9716, //longitude
        "daily":[  //les prévisions de 8 jours à partir d’aujourd’hui, chacune contient les informations suivantes :
            {
                "dt":{"$date":"2021-12-12T12:00:00.000Z"}, //date de la prévision
                "sunrise":{"$date":"2021-12-12T07:15:08.000Z"}, //lever de soleil
                "sunset":{"$date":"2021-12-12T17:12:48.000Z"}, //coucher de soleil
                "moonrise":{"$date":"2021-12-12T13:33:00.000Z"}, //lever de lune
                "moonset":{"$date":"2021-12-12T00:57:00.000Z"}, //coucher de lune
                "moon_phase":0.29, //phase de la lune
                "temp":{ //température
                "day":10.81, // du jour
                "min":6.19, // minimale
                "max":12.11, // maximale
                "night":10.43, // pendant la nuit
                "eve":9.85, // au soir
                "morn":6.56 // au matin
            },
            "feels_like":{ // température sentie
                "day":9.15, // du jour
                "night":8.94, // pendant la nuit
                "eve":9.43, // le soir
                "morn":3.67 // le matin
            },
            "pressure":1023, // pression atmosphérique
            "humidity":46, //humidité en pourcentage
            "wind_speed":7.89, //vitesse du vent
            "wind_deg":324, //orientation du vent en degré
            "weather":[  // le climat
                {"id":802,"main":"Clouds","description":"partiellement nuageux","icon":"03d"}], 
            "clouds":34 // nuages
            },
          // suite des prévisions des jours suivants
        ],
    "name":"Matmata"  // nom de la ville
    }
    

Requêtes à réaliser :

  1. Afficher le nom des villes dont le nom contient "bir" ou "Bir".
  2. Ajouter un champ appelé zone qui aura l’une des valeurs suivantes selon sa latitude :
    • sud si latitude <34
    • centre si latitude entre 34 et 36
    • nord si latitude >36
  3. Afficher le nom des villes contenant les lettre t, b, r.
  4. Afficher le nom des villes qui possèdent au moins une prévision avec une vitesse du vent supérieure à 15.
  5. Afficher les noms des villes et leurs niveaux d’humidité qui ont toutes les prévisions d’humidité inférieures à 47.
  6. Calculer la température (temp.day) moyenne, et la vitesse du vent moyenne de la ville de Bizerte.
  7. Quel est le jour le plus chaud (temp.day) et dans quelle ville.
  8. Afficher les températures minimale et maximale, la vitesse du vent et la description du climat pour la ville de Bizerte au 15/12/2021.

Travail Optionnel 🎁

Choisir l'un des thèmes et créer des exemples de requêtes sur la base restaurants ou une autre de base de ton choix.

  • Indexation
  • Objet cursor
  • Requêtes géospatiales
  • Jointures avec $lookup et des conditions multiples.