Skip to content

Latest commit

 

History

History
 
 

mongodb

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

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 :