如何在 ArangoDB 中存储位置?

How to store locations in ArangoDB?

我正在构建一个 Web 应用程序,我需要在 ArangoDB.

中存储大量唯一地址作为节点

一种方法是使用层次图模型:国家节点连接到节点, 节点连接到 citiescities 连接到具有 GeoJSON 属性的确切 addresses

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

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

好吧,让我们看看您需要 collection 来构建您的应用程序:

  1. Collection 存储您要在应用中使用的地点。这将是您的主要 collection,除其他外,还将包含地图位置 object {经度:XXX,纬度 YYY}

  2. 因为您可能希望人们能够按城市、国家等进行搜索。您需要每个位置类型(城市、国家等)的 collection 或 table 包含所有位置和一个 "type" 标志,表示位置是城市或国家等....

3.- 您需要一个 table 允许您从一个国家开始并深入到一组特定的城市(例如)。所以,你需要一个 table 和一个 from key 和一个 to key

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

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