3 ms·
On that note, would you mind talking about what you use to store the data, efficiently query it etc? I am in the nascent phases of developing a location based
by srjk 16y ago
On that note, would you mind talking about what you use to store the data, efficiently query it etc?
I am in the nascent phases of developing a location based app, but have gotten stuck in trying to figure out a good way to store the data. Currently cassandra is the top contender.
- dansingerman 16y agoWe use mongodb as the backend datastore. It has built in location searching which so far has worked really well.
- srjk 16y agothanks for both your replies. I have used (and liked) mongodb in the past. Horizontal scalability is important and mongo doesn't have a stable release with sharding. Also, this page http://www.mongodb.org/display/DOCS/Sharding+Upgrading+from+Non-Sharded+system http://www.mongodb.org/display/DOCS/Sharding+Upgrading+from+... seems empty. But, the ease of use is really tempting :)
- dansingerman 16y agoAccording to http://www.mongodb.org/display/DOCS/Sharding http://www.mongodb.org/display/DOCS/Sharding production ready sharding should be available this month.
- stewsnooze 16y agoCheck out this code for searching locally with mongo. It doesn't get simpler. Straight from geosay.com class GeosayController < ApplicationController def api expires_in 1.minutes, :public => true results = Tweet.near(params[:lat].to_f,params[:lon].to_f) render :json => results end end .... class Tweet include MongoMapper::Document def self.near(lat, lon) self.all( :latlong => {'$near' => [lat, lon]}, :limit => 30) end end
- stewsnooze 16y agoWe chose mongodb after reading this page http://www.mongodb.org/display/DOCS/Geospatial+Indexing http://www.mongodb.org/display/DOCS/Geospatial+Indexing Before then we were looking at Postgres for its geo stuff and things like cassandra also.
- djb_hackernews 16y agoas someone building a location based service, why not just store the lat/long in a table column and query for < >? Is it that much more efficient to use a specialized product?
- dansingerman 16y agoOur understanding is mongodb should scale to tens of millions of rows better than a SQL database (which would be a nice problem to have) Once we made the decision to use mongodb, it made sense to use the built in near functionality, rather than roll it ourselves.
- djb_hackernews 16y agoIndeed. I am using Django to build my app and a mysql db with 2 float fields for lat/long. GeoDjango and GIS extensions for mysql seemed like over kill, plus I don't really know what I am doing but it seems to work. Django doesn't have very good support for mongo. Well, the django orm.
- dansingerman 16y agoTo be honest I can see absolutely no reason why you can't use floats as you describe and < , >. Depending on what you are doing it may be a little tricky due to lat/longs being angular values, but over small distances I think this can be largely ignored. (In geosay we have some front end code that sorts out the niceties of the angular stuff)