Reputation: 6643
Our team is currently working on some killer ios location app that we fear "explode" in a good way, so we want to put effort thinking about scalability and Availability.
After we read that draw something is based on couchbase NoSQL, we scanned the couch base api (specifically the .net one) and found solutions to all of our app requirements except one, and we describe the scenario:
If we write it in sql server as we did now it's something like this:
CREATE TABLE UserLocations
[UserId] [bigint] NOT NULL,
[CurrentLocation] [geography] NOT NULL
ALTER PROCEDURE sp_GetCurrentUsersInRange
@userPoint geography,
@RangeInMeters int
AS
BEGIN
select UserId from UserLocations
where @userPoint.STDistance(CurrentLocation) <= @RangeInMeters
and UserId <> @userId
END
But this is NoSQL, there are only keys (such as longitude key and latitude key), but we can’t fetch all the values and query them all in memory , can't we?
So the question to you is: Is there a way you know how to accomplish such thing in NoSQL?
Thank you
p.s. our related question in Stackoverflow: How to determine n locations inside a circle efficiently?
EDIT: Couchbase support had answered me! their answer as quoted:
"Our geo-spatial indexing is a feature being debuted in 2.0 (scheduled out later this year) as experimental and will move to fully supported in a later release. We are also in the process of building the necessary client-side interfaces for it, but there is nothing available at the moment. Lastly, the distance and bounding circle (among others) are features that we will develop as we move forward."
Upvotes: 3
Views: 2641
Reputation: 10790
I'm unaware of doing it with couchbase, but MongoDB has geospatial indexing.
http://www.mongodb.org/display/DOCS/Geospatial+Indexing
EDIT Looks like Couch has GeoSpatial as well, through GeoCouch. http://www.couchbase.com/docs/couchbase-geocouch-guide/
Upvotes: 3