2016-08-16 67 views
1

我是新来的ArangoDB。我使用它与地理空间数据(geoJSON)。独特的地理索引ArangoDB

数据库允许分别具有相同经度和纬度的点的重复顶点。我假设,为了消除重复的顶点,我必须将地理索引的唯一属性设置为true。我提到以前关于这个问题的讨论,其中提出了改变约束属性,而不是唯一属性(对于版本1.3)。我尝试了两种方式。我将属性的值更改为true,对于它们中的每一个以及它们都是如此。我使用“ensureIndex”方法从arangosh做到了这一点。创建的索引仍然显示为唯一的错误。

我使用的是ArangoDB 3.0.4,文档显示该属性的唯一性仅支持散列和跳过列表索引。关于如何继续前进并为唯一纬度&经度创建顶点的任何建议?

回答

1

长时间以来没有独特的选择。我认为这可以这样解释:

如果要防止将重复的坐标存储在数据库中,则一个简单的唯一选项可能不够充分,因为最小的偏差会使坐标再次唯一 - 只需将其移动1英寸或cm任意方向。这个其他的坐标应该也可以像重复一样对待,但数字是不同的。我们必须计算到附近顶点的距离,看看它是否小于某个阈值才会认为它是重复的。

由于每个项目的期望设置可能不同(包括如何计算距离),因此应该在应用程序层进行管理。您可以编写一个可以与之通话的Foxx服务来存储新的坐标。所有需要的计算和数据库事务都可以在那里完成。

+0

谢谢!我去做。 –