是否可以在CosmosDB中存储和查询Array Spatial Data?

时间:2017-11-10 21:01:49

标签: azure-cosmosdb

以下是我们要存储的示例文档:


{
  "name": "Joe Bloggs",
   "locations": [
        { "type": "Point", "coordinates": [1,1] },
        { "type": "Point", "coordinates": [2,2] }
   ]
}

该文档的主要特征是“locations”属性是一个GeoJSON点数组。

根据documentation,可以为locations数组定义索引策略。

但是,不清楚是否可以使用ST_WITHIN等空间查询来搜索,例如,数组中的任何点是否落在指定点的某个半径范围内。

我的问题:当存储在数组中时,CosmosDB是否支持索引查询空间数据?

1 个答案:

答案 0 :(得分:1)

与CosmosDB的私人对话:

可以编入索引吗?

  是的,你只需索引/ locations / [] /?或/ locations / *

可以查询吗?

  

是的,您可以使用JOIN来查询数组中的数组。

SELECT * FROM c JOIN loc IN c.locations WHERE ST_DISTANCE(loc, @myLocation) < @distance