0
Bring Spatial Love to your Java             Application      Shekhar Gulati      @shekhargulati      OpenShift Evangelist,...
Building A Location Aware Job Search App2
User Stories    As a User, I should be able to find all the jobs.    As a User, I should be able to find all the jobs ne...
Assumptions: as a developer ...            Want to prototype quickly            Need quick feedback            Dont wan...
Technology Choices            MongoDB            OpenShift            Java 6                        Spring 3.1.2.RELEA...
Why MongoDB ?            Easy to get running            Open Source            Active community            Rich docume...
Rich Document7
Geospatial Indexing Basics            What is it for?                          Find all the MongoDB jobs near me        ...
How to make it work    1) Put your coordinates into an array    { loc : [ 50 , 30 ] } //SUGGESTED OPTION    { loc : { x : ...
Why OpenShift ?      Supports MongoDB. Also supports MySQL and     PostgreSQL.      Multi-language support. Supports Jav...
11
What else do I get and what is the     catch?• OpenShift is free-as-in-beer & free-as-in-freedom• You get three free gears...
Lets get our hands dirty13
Create an OpenShift Account     https://openshift.redhat.com/app/account/new     Promo code is bangalore14
Installing Client Tools Install Ruby 1.8.7 or greater Install Git Install rhc OpenShift gem Refer to documentation15
Setup your OpenShift Environment        rhc setup -l <openshift_login>16
Creating an OpenShift Application     rhc app create -a localjobs -t jbossas-7 -d17
Adding MongoDB and RockMongo               Cartridge      rhc app cartridge add -a localjobs -c mongodb-2.0     rhc app ca...
Play with MongoDB running in the Cloud ssh into instance Type mongo on the shell Create a sample db Insert some documents ...
Lets take a look at GIT Distributed version control A local repository – on your laptop A remote repository – on some othe...
You need to understand at least 3 commands in Git 1. Git add . (means add all news files as being tracked in    the local ...
Pulling the code from GitHub git rm -rf src pom.xml git commit -am “removed default files” git remote add localjobs -m mas...
Importing Data into MongoDB rhc app show -a localjobs -l <openshift_login_email> scp -r jobs-data.json   <instance_ssh_acc...
Show some geospatial queries24
Deploy the code to OpenShift               git push25
Code Walkthrough26
Conclusion 1. MongoDB makes it very easy to build location aware    applications. 2. OpenShift is very easy to use and emb...
Upcoming SlideShare
Loading in...5
×

Mongo db bangalore

265

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
265
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Mongo db bangalore"

  1. 1. Bring Spatial Love to your Java Application Shekhar Gulati @shekhargulati OpenShift Evangelist, Red Hat1
  2. 2. Building A Location Aware Job Search App2
  3. 3. User Stories As a User, I should be able to find all the jobs. As a User, I should be able to find all the jobs near to my location. As a User, I should be able to find all MongoDB (or any skill) jobs near to my location. As a User, I should be able to find all the MongoDB (or any other skill) jobs near to my location with distance.3
  4. 4. Assumptions: as a developer ...  Want to prototype quickly  Need quick feedback  Dont want to manage infrastructure  Dont want to spend much money on infrastructure. Or, even better, you want it to be free.  Use your existing knowledge  Should be able to use the best tool for the job4
  5. 5. Technology Choices  MongoDB  OpenShift  Java 6  Spring 3.1.2.RELEASE  Spring 1.1.0.M1  GIT  SSH5
  6. 6. Why MongoDB ?  Easy to get running  Open Source  Active community  Rich documents  Geospatial indexing.  Writes are very fast. You can customize it using WriteConcern.6
  7. 7. Rich Document7
  8. 8. Geospatial Indexing Basics  What is it for?  Find all the MongoDB jobs near me  Find all the MongoDB jobs within Pune  Supports only two dimensional indexes.  You can only have one geospatial index per collection.  The spatial functionality MongoDB currently has is:  Near  Containment http://www.mongodb.org/display/DOCS/Geospatial+ Indexing8
  9. 9. How to make it work 1) Put your coordinates into an array { 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" } )9
  10. 10. Why OpenShift ?  Supports MongoDB. Also supports MySQL and PostgreSQL.  Multi-language support. Supports Java, Node.js, Perl, Python, PHP and Ruby.  No need to learn anything new.  Scalable.  FREE!10
  11. 11. 11
  12. 12. What else do I get and what is the catch?• OpenShift is free-as-in-beer & free-as-in-freedom• You get three free gears, each with 512MB memory and 1GB of disk space.• Need more resources, just ask!• The catch is we are in developer preview right now12
  13. 13. Lets get our hands dirty13
  14. 14. Create an OpenShift Account https://openshift.redhat.com/app/account/new Promo code is bangalore14
  15. 15. Installing Client Tools Install Ruby 1.8.7 or greater Install Git Install rhc OpenShift gem Refer to documentation15
  16. 16. Setup your OpenShift Environment rhc setup -l <openshift_login>16
  17. 17. Creating an OpenShift Application rhc app create -a localjobs -t jbossas-7 -d17
  18. 18. Adding MongoDB and RockMongo Cartridge rhc app cartridge add -a localjobs -c mongodb-2.0 rhc app cartridge add -a localjobs -c rockmongo-1.118
  19. 19. Play with MongoDB running in the Cloud ssh into instance Type mongo on the shell Create a sample db Insert some documents in the collection Run some queries19
  20. 20. Lets take a look at GIT Distributed version control A local repository – on your laptop A remote repository – on some other machine, usually a server20
  21. 21. You need to understand at least 3 commands in Git 1. Git add . (means add all news files as being tracked in the local repository) 2. Git commit –am “your message” (means commit all my changes to the local repository with this message) 3. Git push (means push from your local repository to the repository on your OpenShift gear)21
  22. 22. Pulling the code from GitHub git rm -rf src pom.xml git commit -am “removed default files” git remote add localjobs -m master git://github.com/shekhargulati/localjobs.git git pull -s recursive -X theirs localjobs master22
  23. 23. Importing Data into MongoDB rhc app show -a localjobs -l <openshift_login_email> scp -r jobs-data.json <instance_ssh_access>:localjobs/data ssh <instance_ssh_access> mongoimport -d localjobs -c jobs --file jobs-data.json -u $OPENSHIFT_NOSQL_DB_USERNAME -p $OPENSHIFT_NOSQL_DB_PASSWORD -h $OPENSHIFT_NOSQL_DB_HOST -port $OPENSHIFT_NOSQL_DB_PORT db.jobs.ensureIndex({"location":"2d"})23
  24. 24. Show some geospatial queries24
  25. 25. Deploy the code to OpenShift git push25
  26. 26. Code Walkthrough26
  27. 27. Conclusion 1. MongoDB makes it very easy to build location aware applications. 2. OpenShift is very easy to use and embraces rapid development. 3. Did I mention – Free? 4. What are you waiting for? Try it out.27
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×