Skip to content

Latest commit

 

History

History
118 lines (100 loc) · 2.55 KB

README.md

File metadata and controls

118 lines (100 loc) · 2.55 KB

911 Calls avec MongoDB

Import du jeu de données

Pour importer le jeu de données, complétez le script import.js (cherchez le TODO dans le code 😉).

Exécutez-le ensuite :

npm install
node import.js

Vérifiez que les données ont été importées correctement grâce au shell (le nombre total de documents doit être 153194) :

use 911-calls
db.calls.count()

Index géographique et index textuel

Afin de répondre aux différents problèmes, vous allez avoir besoin de créer deux index particuliers sur la collection des appels :

Requêtes

À vous de jouer ! Écrivez les requêtes MongoDB permettant de résoudre les problèmes posés.

Les requêtes MongoDB ici:

  • le nombre d'appels par catégorie:
db.calls.aggregate([
  {"$group" : 
    {
      _id:"$title", 
      count:{$sum:1}
    }
  }
])
  • les 3 mois ayant comptabilisés le plus d'appels:
db.calls.aggregate(
  {
    $group:
    {
      _id:"$timeStamp", 
      nb_appel:{$sum:1}
    }
  }, 
  {
    $sort:
      {
        nb_appel:-1
      }
  },
  {
      $limit:3
  }
)
  • le top 3 des villes avec le plus d'appels pour overdose:
db.calls.aggregate(
  {
    $match:
      {
        title:"EMS: OVERDOSE"
      }
  },
  {
    $group:
      {
        _id:"$twp", 
        nb_overdose:{$sum:1}
      }
  }, 
  {
    $sort:
      {
        nb_overdose:-1
      }
  }, 
  {
    $limit:3
  }
)
  • le nombre d'appels autour de Lansdale dans un rayon de 500 mètres:
db.calls.createIndex( { location : "2dsphere" } )
db.calls.find(
   {"location":
       { $near :
          {
            $geometry: { type: "Point",  coordinates: [ -75.283783, 40.241493 ] },
            $maxDistance: 500
          }
       }
   }
).count()

Vous allez sûrement avoir besoin de vous inspirer des points suivants de la documentation :