首页 文章

ArangoDB地理空间阵列

提问于
浏览
0

我是ArangoDB和NoSQL的新手,我正在研究空间查询的ArangoDB

我正确地运行了两个简单的例子https://mikewilliamson.wordpress.com/2014/05/07/arangodbs-geo-spatial-functions/

define geo index in ArangoDB

现在,当我尝试申请当前的文件时,我似乎无法使其成功

这是我的JSON Doc的一个例子

{
  "branches": [
 {
  "currentGeoLocation": {
    "latitude": -10,
    "longitude": 1
   }
 }
 ],
 "name": "example"
}

我没有运气,尝试过以下查询

LET coll = (FOR item IN positions
RETURN {
name:item.name,
lat:item.branches[0].currentGeoLocation.latitude,
lng:item.branches[0].currentGeoLocation.longitude
})

FOR geo IN WITHIN(coll, -10, 1, 1) RETURN geo
-----------

FOR item in positions
FOR branch in item.branches
for geo in within(branch,-10,2,1)
return geo

任何人都可以帮助我正确地获取geoLocations的集合,以便运行geo查询吗?

此外,我已经使用mongosh定义了地理索引而没有任何错误:db.positions.ensureGeoIndex('latitude','longitude');

1 回答

  • 1

    我认为问题是您的索引在文档中的两个浮点属性上,而不是两个 arrays 的浮点数 . Arango没有NoSQL,它假设有一天你可能会创建具有预期字段的文档 . AFAIK,您只能在非数组字段上创建地理索引 . 也许如果您将数组元素分发到另一个集合中的文档并通过边缘链接到它们,您可以执行您尝试执行的搜索 .

相关问题