際際滷

際際滷Share a Scribd company logo
LBS WITH MONGODB
                      LOCATION BASED SERVICE WITH MONGODB
                          ( 覈所觜襦 豺蠍磯 觜 襷り鍵 )

2011	 6	 14
螳螳

                伎

                ITEMBAY / 

                PROGRAMMER / 

                SPRINGSPROUT / UNLOGICAL

                OKJSP / SKYNLE

                TWITTER / SKYNLE




2011	 6	 14
DAUM PLACE, FOURSQUARE, GOOGLE PLACES


2011	 6	 14
SAMPLE PAGE
               HTTP://192.168.123.1:8080/MONGO/MAP
                      300,000

                      150,000/1覿

                      1 SELECT & 1 UPDATE

                      MACBOOK PRO, DUAL CORE 2.54G, 4G, 128SSD

                      JBOSS 5.1 WITH IN ECLIPSE / JDK 1.6

                      MONGODB 1.8




2011	 6	 14
OTHERS ?

                SPRING3

                SPRING DATA MONGO ...

                GOOGLE MAP V3

                TILES2

                JQUERY

                ALL FREE




2011	 6	 14
WHY MONGODB ?

                FREE

                GEOSPATIAL INDEX

                DISTANCE

                EASY WITH JAVA

                AND ...




2011	 6	 14
MONGODB
                      HTTP://MONGODB.ORG




2011	 6	 14
MONGODB GEOSPATIAL INDEX

          >db.places.insert({   loc   :   [   50 , 30 ] })
          >db.places.insert({   loc   :   {   x : 50 , y : 30 } })
          >db.places.insert({   loc   :   {   foo : 50 , y : 30 } })
          >db.places.insert({   loc   :   {   long : 40.7390,lat: 73.9929 } })

          >db.places.ensureIndex( { loc : "2d" } )

          >db.places.find( { loc : [50,50] } )

          >db.places.find( { loc : { $near : [50,50] } } )

          >db.places.find( { loc : { $near : [50,50] } } ).limit(20)

          >db.places.find( { loc : { $near : [50,50] , $maxDistance :
          5 } } ).limit(20)




2011	 6	 14
MONGODB GEOSPATIAL INDEX
          Compound Indexes
          >db.places.ensureIndex(
               { location : "2d" , category : 1 }
            );
          >db.places.find(
            {
               location : { $near : [50,50] },
               category : 'coffee'
            });


          geoNear Command
          > db.runCommand( { geoNear : "places" , near : [50,50],
          num : 10 } , query : { category : 'coffee' });
          Valid options are: "near", "num", "maxDistance", "distanceMultiplier" and "query"




2011	 6	 14
MONGODB GEOSPATIAL INDEX
          	    public List<DBObject> retriveByLoc(int flag, Double geolong, Double geolat)
               {
          	    	 DBObject cmd = new BasicDBObject(), query = new BasicDBObject();;
          	    	 query = new BasicDBObject();
          	    	 query.put("flag", flag);
          	    	
          	    	 Object[] location = new Object[]{ geolong, geolat };
          	    	 cmd = new BasicDBObject();
          	    	 cmd.put("geoNear", "position");
          	    	 cmd.put("near", location);
          	    	 cmd.put("num", 30);
          	    	 cmd.put("distanceMultiplier", 1.609344*1000*1000);	 //蟇磯Μ  m
          	    	 cmd.put("spherical", true); //蟇磯Μ螻 ?
          	    	 cmd.put("query", query);

          	    	      CommandResult cr = mongoTemplate.getDb().command(cmd);
          	    	
          	    	      return (List<DBObject>)cr.get("results");
          	    }




2011	 6	 14
WHAT ?

                      MONGODB襯 伎
                        ク襴螻, 螳覲蟆
                      豺蠍磯觜(LBS)襯
                          .




2011	 6	 14
Q/A




2011	 6	 14

More Related Content

Viewers also liked (6)

Madkour and elroby
Madkour and elrobyMadkour and elroby
Madkour and elroby
Al Baha University
Spring 2012 Plumbing Catalog
Spring 2012 Plumbing CatalogSpring 2012 Plumbing Catalog
Spring 2012 Plumbing Catalog
CCEC_US
Scopus author feedback
Scopus author feedbackScopus author feedback
Scopus author feedback
Al Baha University
47. 悋惶悸 悋悽悋愕悸 愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘 悋愕 惘 悋惺 惶惡悋忰 悋悖忰...
47. 悋惶悸 悋悽悋愕悸     愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘   悋愕 惘 悋惺    惶惡悋忰 悋悖忰...47. 悋惶悸 悋悽悋愕悸     愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘   悋愕 惘 悋惺    惶惡悋忰 悋悖忰...
47. 悋惶悸 悋悽悋愕悸 愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘 悋愕 惘 悋惺 惶惡悋忰 悋悖忰...
Ibrahimia Church Ftriends
悋愆惆悸 悋惘悴悋悄 悋愆悋悄 惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...
悋愆惆悸     悋惘悴悋悄       悋愆悋悄    惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...悋愆惆悸     悋惘悴悋悄       悋愆悋悄    惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...
悋愆惆悸 悋惘悴悋悄 悋愆悋悄 惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...
Ibrahimia Church Ftriends
Spring 2012 Plumbing Catalog
Spring 2012 Plumbing CatalogSpring 2012 Plumbing Catalog
Spring 2012 Plumbing Catalog
CCEC_US
47. 悋惶悸 悋悽悋愕悸 愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘 悋愕 惘 悋惺 惶惡悋忰 悋悖忰...
47. 悋惶悸 悋悽悋愕悸     愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘   悋愕 惘 悋惺    惶惡悋忰 悋悖忰...47. 悋惶悸 悋悽悋愕悸     愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘   悋愕 惘 悋惺    惶惡悋忰 悋悖忰...
47. 悋惶悸 悋悽悋愕悸 愕愕 惺惴悋惠 悋惶悋悋 悋惺愆惘 悋愕 惘 悋惺 惶惡悋忰 悋悖忰...
Ibrahimia Church Ftriends
悋愆惆悸 悋惘悴悋悄 悋愆悋悄 惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...
悋愆惆悸     悋惘悴悋悄       悋愆悋悄    惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...悋愆惆悸     悋惘悴悋悄       悋愆悋悄    惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...
悋愆惆悸 悋惘悴悋悄 悋愆悋悄 惡惘 悋愕 悋悒悴 惡悋悒惡惘悋- 悋...
Ibrahimia Church Ftriends

More from YongHyuk Lee (6)

Vert.X and MSA - DevOps
Vert.X and MSA - DevOpsVert.X and MSA - DevOps
Vert.X and MSA - DevOps
YongHyuk Lee
Microservices chat
Microservices chatMicroservices chat
Microservices chat
YongHyuk Lee
2015 JBUG KOREA MEETUP - spring4 width infinispan
2015 JBUG KOREA MEETUP - spring4 width infinispan2015 JBUG KOREA MEETUP - spring4 width infinispan
2015 JBUG KOREA MEETUP - spring4 width infinispan
YongHyuk Lee
spring3.2 java config Servler3
spring3.2 java config Servler3spring3.2 java config Servler3
spring3.2 java config Servler3
YongHyuk Lee
Infinispan
InfinispanInfinispan
Infinispan
YongHyuk Lee
OAuth2.0
OAuth2.0OAuth2.0
OAuth2.0
YongHyuk Lee
Vert.X and MSA - DevOps
Vert.X and MSA - DevOpsVert.X and MSA - DevOps
Vert.X and MSA - DevOps
YongHyuk Lee
Microservices chat
Microservices chatMicroservices chat
Microservices chat
YongHyuk Lee
2015 JBUG KOREA MEETUP - spring4 width infinispan
2015 JBUG KOREA MEETUP - spring4 width infinispan2015 JBUG KOREA MEETUP - spring4 width infinispan
2015 JBUG KOREA MEETUP - spring4 width infinispan
YongHyuk Lee
spring3.2 java config Servler3
spring3.2 java config Servler3spring3.2 java config Servler3
spring3.2 java config Servler3
YongHyuk Lee

LBS with MongoDB

  • 1. LBS WITH MONGODB LOCATION BASED SERVICE WITH MONGODB ( 覈所觜襦 豺蠍磯 觜 襷り鍵 ) 2011 6 14
  • 2. 螳螳 伎 ITEMBAY / PROGRAMMER / SPRINGSPROUT / UNLOGICAL OKJSP / SKYNLE TWITTER / SKYNLE 2011 6 14
  • 3. DAUM PLACE, FOURSQUARE, GOOGLE PLACES 2011 6 14
  • 4. SAMPLE PAGE HTTP://192.168.123.1:8080/MONGO/MAP 300,000 150,000/1覿 1 SELECT & 1 UPDATE MACBOOK PRO, DUAL CORE 2.54G, 4G, 128SSD JBOSS 5.1 WITH IN ECLIPSE / JDK 1.6 MONGODB 1.8 2011 6 14
  • 5. OTHERS ? SPRING3 SPRING DATA MONGO ... GOOGLE MAP V3 TILES2 JQUERY ALL FREE 2011 6 14
  • 6. WHY MONGODB ? FREE GEOSPATIAL INDEX DISTANCE EASY WITH JAVA AND ... 2011 6 14
  • 7. MONGODB HTTP://MONGODB.ORG 2011 6 14
  • 8. MONGODB GEOSPATIAL INDEX >db.places.insert({ loc : [ 50 , 30 ] }) >db.places.insert({ loc : { x : 50 , y : 30 } }) >db.places.insert({ loc : { foo : 50 , y : 30 } }) >db.places.insert({ loc : { long : 40.7390,lat: 73.9929 } }) >db.places.ensureIndex( { loc : "2d" } ) >db.places.find( { loc : [50,50] } ) >db.places.find( { loc : { $near : [50,50] } } ) >db.places.find( { loc : { $near : [50,50] } } ).limit(20) >db.places.find( { loc : { $near : [50,50] , $maxDistance : 5 } } ).limit(20) 2011 6 14
  • 9. MONGODB GEOSPATIAL INDEX Compound Indexes >db.places.ensureIndex( { location : "2d" , category : 1 } ); >db.places.find( { location : { $near : [50,50] }, category : 'coffee' }); geoNear Command > db.runCommand( { geoNear : "places" , near : [50,50], num : 10 } , query : { category : 'coffee' }); Valid options are: "near", "num", "maxDistance", "distanceMultiplier" and "query" 2011 6 14
  • 10. MONGODB GEOSPATIAL INDEX public List<DBObject> retriveByLoc(int flag, Double geolong, Double geolat) { DBObject cmd = new BasicDBObject(), query = new BasicDBObject();; query = new BasicDBObject(); query.put("flag", flag); Object[] location = new Object[]{ geolong, geolat }; cmd = new BasicDBObject(); cmd.put("geoNear", "position"); cmd.put("near", location); cmd.put("num", 30); cmd.put("distanceMultiplier", 1.609344*1000*1000); //蟇磯Μ m cmd.put("spherical", true); //蟇磯Μ螻 ? cmd.put("query", query); CommandResult cr = mongoTemplate.getDb().command(cmd); return (List<DBObject>)cr.get("results"); } 2011 6 14
  • 11. WHAT ? MONGODB襯 伎 ク襴螻, 螳覲蟆 豺蠍磯觜(LBS)襯 . 2011 6 14