C:\Elod\2017-2018\IF\3IF\DW\TD2_MongoDB mongoimport --db mongoLab --collection velov_geo --file "C:\Elod\2024-2025\centrale\BsC_EM_EC\MongoDBLab\velov_geo.json" ./mongoimport --db mongoLab --collection velov_geo --file "/Users/elodegyed/2024-2025/INSA/IF/3IF/DW/MongoDB/velov_geo.json" 1. db.velov_geo.find({"properties.commune":"VILLEURBANNE"}); ou db.velov_geo.find({"properties.commune":{$eq:"VILLEURBANNE"}}); // avec projection db.velov_geo.find({"properties.commune":"VILLEURBANNE"}, {"properties.commune":1, "properties.name":1, _id:0}); 2. db.velov_geo.find({"properties.commune":{$ne:"VILLEURBANNE"}}); db.velov_geo.find({"properties.commune":{$ne:"VILLEURBANNE"}}, {"properties.commune":1, "properties.name":1}); db.velov_geo.find({"properties.commune":{$ne:"VILLEURBANNE"}}).count(); 3. Liste des stations qui n’ont pas de seconde adresse (adress2 vide) db.velov_geo.find({"properties.address2":""}, {"properties.commune":1, "properties.name":1,"properties.address2":1}); 4. Nombre de stations dont la seconde adresse a une valeur db.velov_geo.find({"properties.address2":{$ne:""}}).count(); 5. db.velov_geo.find({"properties.available_bikes":{$gt:2}}); db.velov_geo.find({"properties.available_bikes":{$gt:2}}, {"properties.available_bikes":1, "properties.name":1, _id:0}); 6. db.velov_geo.distinct("properties.commune"); db.velov_geo.aggregate( [ {$group:{_id:"$properties.commune"}} ] ); 7. db.velov_geo.aggregate( [ {$group:{_id:"$properties.commune"}}, {$sort:{"_id":-1}} ] ); db.velov_geo.distinct("properties.commune").sort(); db.velov_geo.distinct("properties.commune").sort().reverse(); 8. db.velov_geo.find({"properties.commune":"Lyon 9 ème"}, {"properties.available_bikes":1}) .sort({"properties.available_bikes":1}); 10. db.velov_geo.aggregate( [ {$group:{_id:"$properties.commune", nb_stations : {$sum:1}}} ] ); 11. db.velov_geo.aggregate( [ {$group:{_id:"$properties.commune", nb_stations : {$sum:1}}}, {$sort:{"_id":1}} ] ); 12. db.velov_geo.aggregate( [ {$group:{_id:"$properties.commune", total : {$sum:1}}}, {$sort:{"total":-1}} ] ); 13. db.velov_geo.aggregate( [ {$match:{"properties.commune":"VILLEURBANNE"}}, {$group:{_id:"$properties.available_bikes", nb_stations : {$sum:1}}}, {$sort:{"nb_stations":-1}} ] ); 14. db.velov_geo.aggregate( [ {$match:{"properties.commune":"VILLEURBANNE"}}, {$group:{_id:"$properties.available_bikes", noms : {$push:"$properties.name"}}} ] ); 15. Calculer le nombre moyen de vélos disponibles par commune db.velov_geo.aggregate( [ { $group: { _id:{commune:"$properties.commune"}, moyenne : { $avg : "$properties.available_bikes"} } }, ] ); 19. Chercher les stations Vélo’V qui sont à moins de 500m du point : $geometry: { type: "Point", coordinates: [ 4.863132722360224, 45.77022676914935 ] } db.velov_geo.find({ "geometry.coordinates":{ $near: { $geometry: { type: "Point", coordinates: [ 4.863132722360224, 45.77022676914935 ] }, $minDistance: 0, $maxDistance: 500 }} }); 20. Listez les 5 stations les plus proches des coordonnées type : "Point", coordinates: [ 4.863132722360224, 45.77022676914935 ] } (utilisez : geoNear) db.runCommand( { geoNear: "velov_geo", near: { type: "Point", coordinates: [ 4.863132722360224, 45.77022676914935 ]}, spherical: true, num: 5 } ) Ou db.velov_geo.aggregate( [ { $geoNear: { near: { type: "Point", coordinates: [ 4.863132722360224, 45.77022676914935 ]}, distanceField: "geometry", num: 5, spherical: true } }, ] ); Index text 18. Cherchez les stations dont le pole répond à la requête « quartiers » Find velov stations with the adress containing: "Château". First solution with a regexp: db.velov_geo.find({ "properties.address": { "$regex": "Europe", "$options": "i" } }); or a shorter form : db.velov_geo.find({ "properties.address": /Chateau/i }); This db.velov_geo.find( { $text: { $search: "quartiers" } } ) 19. { "type" : "Feature", "properties" : { "number" : 10013, "name" : "Ecole Centrale", "address" : "Av. Guy de Collongue", "address2" : "", "commune" : "Ecully", "nmarrond" : 14, "bonus" : "Oui", "pole" : "Campus Ecully", "lat" : 45.783226793334435, "lng" : 4.766414069315745, "bike_stands" : 20, "status" : "OPEN", "available_bike_stands" : 7, "available_bikes" : 13, "availabilitycode" : 1, "availability" : "Vert", "banking" : 0, "gid" : 1065, "last_update" : "2022/01/25 10:49:23", "last_update_fme" : "2022/01/25 10:49:23" }, "geometry" : { "type" : "Point", "coordinates" : [ 4.766414069315745, 45.783226793334435 ] } } 17.