Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MongoNYC 2012: Get your Spatial On with MongoDB...

mongodb
May 29, 2012
270

MongoNYC 2012: Get your Spatial On with MongoDB in the Cloud

MongoNYC 2012: Get your Spatial On with MongoDB in the Cloud, Steve Pousty, Red Hat. You have seen the stuff that FourSquare has done with spatial and you want some of that hotness for your app. But, where to start? Have no fear - by the end of this session you will have all the pieces necessary to write your own location based app. The OpenShift platform already has MongoDB plus the spatial bits installed, so there is no need to find a VPS or convince your IT dude to install stuff. What's OpenShift? It's Red Hat's free auto-scaling Platform as a Service. This session will start with a quick intro on firing up an OpenShift instance with MongoDB. Then we will load some data into MongoDB, show you how to handle spatial data, do some command line spatial operations, and finally plugin in some code to build a simple "Find the National Park Application". When you go home you will be able to amaze your friends and supervisors with some spatial magic goodness you can control.

mongodb

May 29, 2012
Tweet

Transcript

  1. 1 Get your Spatial on with MongoDB in the Cloud

    Steven Citron-Pousty PaaS Dust Spreader, Red Hat @TheSteve0
  2. 2 Agenda • Learn a little spatial • Load some

    spatial data into mongo • Do a query or two
  3. 3 Assumptions 1) You can use the command line 2)

    You are comfortable with Mongo command line 3) Please ask questions – though since we only have 30 minutes they may have to wait until the end or after the session
  4. 4 What is OpenShift? Red Hat’s free platform as a

    service for applications in the cloud.
  5. 9 Looks great, but what’s the catch? • OpenShift is

    free-as-in-beer & free-as-in-freedom • Three 512 MB RAM / 1 GB storage gears • Need more resources, just ask! • We are really in Developer Preview
  6. 11 Spatial is fun The only spatial functionality Mongo currently

    has is: 1) Near 2) Containment All of it is laid out on one page: http://www.mongodb.org/display/DOCS/ Geospatial+Indexing First link on a google search for “mongodb spatial indexing”
  7. 12 Caveats 1. Assumes coords are between -180 and 180

    2. Can handle any 2D coordinates 3. Has methods to handle curvature of the earth (spherical)
  8. 13 How to make it work 1) Put your coordinates

    into an arrary { loc : [ 50 , 30 ] } //SUGGESTED OPTION { loc : { x : 50 , y : 30 } } { loc : { foo : 50 , y : 30 } } { loc : { lon : 40.739037, lat: 73.992964 } } 2) Make a 2d index db.places.ensureIndex( { loc : "2d" } )
  9. 14 Demo 1. I have an app and a mongo

    instance running 2. Load some spatial data in JSON format 3. Make the 2d index 4. Do 2 queries • Find db.places.find( { loc : { $near : [50,50] } } ) • geoNear db.runCommand( { geoNear : "parkpoints" , near : [50,50], num : 10 } );
  10. 15 Conclusion 1. Spatial is easy and fun on Mongo

    2. You can now build your own FourSquare or other checkin application. 3. You can also build your own field data entry system. 4. You can build and deploy your application quickly without having to think about infrastructure. Openshift.redhat.com COME BY THE BOOTH