Your SlideShare is downloading. ×
Geolocation in MongoDB
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Geolocation in MongoDB

5,715
views

Published on

A talk on "Geolocation in MongoDB" at the Silicon Valley MongoDB User Group. (http://www.meetup.com/MongoDB-SV-User-Group/events/91702142/)

A talk on "Geolocation in MongoDB" at the Silicon Valley MongoDB User Group. (http://www.meetup.com/MongoDB-SV-User-Group/events/91702142/)


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,715
On Slideshare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. GEOLOCATION IN MONGODB { name: ‘Shashank Tiwari’, web: ‘shanky.org’}Wednesday, January 16, 13
  • 2. WHO AM I? Entrepreneur, developer, author Most recent book: Professional NoSQL (Wiley, 2011) Founder : WhatNext Labs, creators ofWednesday, January 16, 13
  • 3. DEGREES OF MEASURE Latitude LongitudeWednesday, January 16, 13
  • 4. DEGREE OF LONGITUDEWednesday, January 16, 13
  • 5. GEO IN MONGO Is a world in 2DWednesday, January 16, 13
  • 6. MONGO DOC WITH LOC { loc : [37.407202, -122.10716] } { loc : { x: 37.407202, y: -122.10716} } { loc : { lat: 37.407202, lon: -122.10716} }Wednesday, January 16, 13
  • 7. INDEX db.places.ensureIndex( { loc : "2d" } ) 1 geospatial index per collectionWednesday, January 16, 13
  • 8. INDEX RANGE db.places.ensureIndex( { loc : "2d" } , { min : -500 , max : 500 } )Wednesday, January 16, 13
  • 9. INDEX PRECISION db.places.ensureIndex( { loc : "2d" } , { bits : 26 } ) Geo-hash precision of 26bits ~ 2 feetWednesday, January 16, 13
  • 10. EXACT QUERIES > db.places.find({ loc : [ 37.407202, -122.10716 ]}); { "_id" : ObjectId("50b69e66e6945f62a019f3a4"), "name" : "San Antonio Caltrain", "loc" : [ 37.407202, -122.10716 ] }Wednesday, January 16, 13
  • 11. EXPLAIN QUERY PLAN db.places.find({ loc : [ 37.407202, -122.10716 ]}).explain();Wednesday, January 16, 13
  • 12. COMPOUND INDEX db.places.ensureIndex( { loc : "2d", name : 1 } )Wednesday, January 16, 13
  • 13. NEAR QUERY db.places.find({ loc : { $near : [ 37.407202, -122.10716 ]}}); Returns points sorted by distanceWednesday, January 16, 13
  • 14. WITH MAXDISTANCE db.places.find({ loc : { $near : [ 37.407202, -122.10716 ], $maxDistance : 0.05}}); What is the unit of maxDistance? -- for latitude & longitude 1 degree ~ 69 milesWednesday, January 16, 13
  • 15. GEONEAR QUERY db.runCommand({ geoNear : "places", near : [37.407202, -122.10716], num : 5 }); also gives the distanceWednesday, January 16, 13
  • 16. MORE WITH GEONEAR db.runCommand({ geoNear : "places", near : [37.407202, -122.10716], num : 5, type : “DO” }); parameters: near, num, maxDistance, queryWednesday, January 16, 13
  • 17. WITHIN A BOX db.places.find({ loc : { $within : { $box : [[39.589821, -122.438831], [37.485200, -122.228438]] }}});Wednesday, January 16, 13
  • 18. WITHIN A CIRCLE db.places.find({ loc : { $within : { $center : [[39.589821, -122.438831], 10] }}});Wednesday, January 16, 13
  • 19. WITHIN A POLYGON Polygon shapes currently cannot be indexedWednesday, January 16, 13
  • 20. SPHERICAL SUPPORT geoNear -- spherical : true $nearSphere $centerSphere Order is important, very important -- longitude, latitudeWednesday, January 16, 13
  • 21. MULTI LOCATIONS db.places.insert({ placesVisitedToday : [ { name : "San Antonio Caltrain", loc : [37.407202, -122.10716] }, { name : "Datapipe", loc : [37.3336641, -121.8887072] } ] })Wednesday, January 16, 13
  • 22. QUERY MULTI LOC db.places.ensureIndex( { " placesVisitedToday.loc " : "2d"} ) use uniqueDocs : true to get unique documentsWednesday, January 16, 13
  • 23. Wednesday, January 16, 13
  • 24. Wednesday, January 16, 13
  • 25. NEXT TALK Join me to learn MongoDB in an hour! Coming soon : Feb 1, 2013Wednesday, January 16, 13
  • 26. THANKS More questions? web: shanky.org | twitter : @tshanky | email: st@treasuryofideas.com Download and play with on Google Play and coming soon to the AppStore.Wednesday, January 16, 13