如何在ArangoDB中存储位置?

时间:2019-05-01 15:14:43

标签: nosql graph-databases arangodb aql document-database

我正在构建一个Web应用程序,需要在其中存储大量唯一地址作为 ArangoDB 中的节点。

一种方法是使用分层图模型:将 country 节点连接到 county 节点,将 county 节点连接到城市城市通过GeoJSON属性连接到确切的地址

另一种选择是仅使用包含城市,县和国家作为属性的地址节点。

哪种方法更有利?我将运行查询以查找给定范围内的位置或给定城市中的位置。

1 个答案:

答案 0 :(得分:0)

好吧,让我们来看一下构建应用程序所需的集合:

  1. 集合,用于存储要在应用程序中使用的地方。这将是您的主要收藏,其中将包含地图位置对象{经度:XXX,纬度YYY}

  2. 因为您可能希望人们能够按城市,国家/地区等进行搜索。您需要按位置类型(城市,国家/地区等)收集,或者需要一个包含所有位置和“类型”的表格“表示位置是城市或国家等的标志。

3.-您需要一个表格,该表格可以让您从一个国家开始,然后向下钻取到一组特定的城市(例如)。因此,您需要一个带有from键和to键的表

到此为止,您可能已经注意到我们已经基本构建了一个层次结构,在Arango中,我将构建为至少一个Places顶点集合,Locations顶点集合和locationContains边缘集合。这将允许真正快速的查找,这是最初创建图形数据库的原因之一。

现在请注意,由于Arango是多模型数据库,因此可以使用图语法(我自己喜欢匿名图语法),但是也可以在需要时使用传统联接,其行为与传统关系数据库非常相似。