Sommaire

Requêtes géospatiales Requête:géospatiale

Exercice 1

Voici le code complet de notre requête avec les parties manquantes en gras ; souvenez-vous que $geoWithin ne trie en aucune manière les documents qu’il renvoie :

var KilometresEnRadians = function(kilometres){ 
   var rayonTerrestreEnKm = 6371; 
   return kilometres / rayonTerrestreEnKm; 
}; 
 
var salle = db.salles.findOne({"adresse.ville": "Nîmes"}); 
 
var requete = { 
   "adresse.localisation" : { 
       $geoWithin : { 
           $centerSphere : [ 
                  salle.adresse.localisation.coordinates, 
                  KilometresEnRadians(60) 
           ] 
       } 
   }, 
   "styles": {$in: ["blues", "soul"]} 
}; 
db.salles.find(requete, {"_id": 0, "nom": 1});

Exercice 2

La notion de tri doit vous mettre sur la piste de $nearSphere !

var marseille = {"type": "Point", "coordinates": [43.300000, 5.400000]} 
 
db.salles.find({  
   "adresse.localisation": {  
       $nearSphere: {  
        ...