我们的团队目前正在开发一些杀手ios定位应用程序,我们担心这会很好地“爆炸”,因此我们希望能够考虑可扩展性和可用性。
在我们读到基于couchbase NoSQL的绘图之后,我们扫描了沙发基础api(特别是.net one)并找到了除我们之外的所有应用程序需求的解决方案,并且我们描述了该场景:
如果我们像现在一样在sql server中编写它,就像这样:
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
但这是NoSQL,只有键(例如经度键和纬度键),但我们无法获取所有值并在内存中查询它们 ,不是吗?
所以问题是: 有没有办法让你知道如何在NoSQL中完成这样的事情?
谢谢
P.S。我们在Stackoverflow中的相关问题:How to determine n locations inside a circle efficiently?
编辑: Couchbase的支持已经回答了我! 引用他们的答案:
“我们的地理空间索引是一个在2.0中推出的功能(计划在今年晚些时候推出)作为实验,并将在稍后的版本中完全支持。我们也正在构建必要的客户端它的接口,但目前没有任何可用的东西。 最后,距离和边界圆(以及其他)是我们在前进过程中将要发展的特征。“
答案 0 :(得分:3)
我不知道用couchbase做这件事,但MongoDB有地理空间索引。
http://www.mongodb.org/display/DOCS/Geospatial+Indexing
编辑通过GeoCouch看起来Couch也有GeoSpatial。 http://www.couchbase.com/docs/couchbase-geocouch-guide/