查询会不会像
SELECT TOP 1 * ST_DISTANCE etc
或更具体地说
SELECT TOP 1 * FROM c WHERE ST_DISTANCE(c.AssetLocation, { 'type': 'Point', 'coordinates': [115.58, 21.84] }) < 49999
返回最近的对象,如果没有,我怎么能按距离排序?
谢谢,
伊恩
答案 0 :(得分:2)
DocumentDB本身不支持使用Geo-Spatial索引的最近或ORDER BY。
ORDER BY的最佳方法是在查询中投射(SELECT
)距离,并在客户端或通过存储过程对其进行排序(减少多次往返的延迟成本)。
对于大型数据集,您可以通过在距离较小的距离上添加过滤器(WHERE
)来优化最近的数据,并迭代/逐步增加距离值,直到找到第一个点。