spatial mongodb, node.js, and express - server-side js for your application

13
1 Building Spatial Web Services with MongoDB + NodeJS in Less than 30 Minutes Steven Citron-Pousty PaaS Dust Spreader, Red Hat @TheSteve0

Upload: steven-pousty

Post on 23-Jun-2015

2.844 views

Category:

Technology


6 download

DESCRIPTION

My Spatial presentation at MongoBoulder

TRANSCRIPT

1

Building Spatial Web Services with MongoDB + NodeJS in

Less than 30 MinutesSteven Citron-PoustyPaaS Dust Spreader, Red Hat@TheSteve0

2

Agenda

•Learn a little spatial•Load some spatial data into mongo•Do a query or two•Repo for today’s code is here – •https://github.com/openshift/openshift-mongo-node-express-example

•SIGN UP CODE: mongoboulder

3

Assumptions

1)You already know that Node.JS + Mongo is like chocolate and peanut butter2)You can use the command line3)You are comfortable with Mongo command line4)Please ask questions – though since we only have 30 minutes they may have to wait until the end or after the session

4

Kind of like Amazon, right? Nope.

5Cook24v on Flickr

6

What’s supported?

7

There’s more? 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

8

On to spatial!

9

Spatial is fun

The spatial functionality Mongo currently has is:1)Near2)Containment

All of it is laid out on two pages:http://docs.mongodb.org/manual/applications/geospatial-indexes/

And

http://docs.mongodb.org/manual/core/geospatial-indexes/

10

Good to know

1.Assumes coords. are between [-180 and 180)2.Can handle any 2D coordinates3.Has methods to handle curvature of the earth (spherical)

11

How to make it work

1) Put your coordinates into an arrary{ loc : [ 50 , 30 ] }{ loc : { x : 50 , y : 30 } }{ loc : { foo : 50 , y : 30 } }{ loc : { lon : 40.739037, lat: 73.992964 } }

If you use spherical make sure to put [lon, lat]

2) Make a 2d indexdb.places.ensureIndex( { loc : "2d" } )

There is also a Haystack index – buckets the world

12

Demo

1.I have a Node.JS app and a mongo instance running, with spatial data and 2D index already created2.Do some fun spatial and MongoDB work3.Show you the web services

13

Conclusion

1.Spatial is easy and fun on Mongo2.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.

5.SIGN UP CODE: mongoboulder

http://openshift.redhat.com