ArangoDB地理空间阵列

时间:2016-10-28 22:45:07

标签: arangodb

我是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集合以便运行地理查询吗?

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

1 个答案:

答案 0 :(得分:1)

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