Spatial Mongo Intro at Open Cloud Conf.
-
Upload
steven-pousty -
Category
Technology
-
view
722 -
download
3
description
Transcript of Spatial Mongo Intro at Open Cloud Conf.
1
Get your Spatial on withMongoDB in the Cloud
Steven Citron-PoustyPaaS Dust Spreader, Red Hat
2
Agenda
• Learn a little spatial
• Load some spatial data into MongoDB
• Do a query or two
• Show some server-side code using it
3
1) You can use the command line
2) You are comfortable with MongoDB command line
3) Please ask questions
Assumptions
4
What is OpenShift?
Red Hat's free, auto-scaling Platform as a Service (PaaS) for applications in the cloud.
5
Kind of like Amazon, right? Nope.
6
What’s supported?
7
Looks great, but what’s the catch?
• OpenShift is free-as-in-beer & free-as-in-freedom
• Three 1.5 GB RAM / 3 GB storage gears
• Need more resources, just ask!
8
On to Spatial and MongoDB
9
The only spatial functionality MongoDB 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”
Spatial is fun!
10
1. Assumes coordinates are between -180 and 180
2. Can handle any 2d coordinates
3. Has methods to handle curvature of the earth (spherical)
Caveats
11
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 } }
1) Make a 2d index
db.places.ensureIndex( { loc : "2d" } )
How to make it work
12
1. I have an app and a MongoDB instance running
2. Load some spatial data in JSON format
3. Make the 2d index
4. Do a bunch of command you would need in building an app (except Deleting docs, because that is easy cheezy)
Demo
13
1. Spatial is easy and fun on MongoDB!
2. You can now build your own FourSquare or other check-in 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.
Conclusion