Azure Cosmos 数据库别名列排序依据

use*_*747 4 azure azure-cosmosdb

我在 cosmos db 中编写了一个选择查询,效果很好。但在该查询中,当我尝试在别名列上按列添加顺序时,它不起作用。这里的距离是一个别名列,正确的方法是什么?

SELECT c.id,c.type,c.name,c.latitude,c.longitude,c.location, ST_Distance(c.location, { 'type': 'Point', 'coordinates':[-112.215641, 33.181647]}) as distance FROM c WHERE ST_Distance(c.location, { 'type': 'Point', 'coordinates':[-112.215641, 33.181647]}) < 321868.8 ORDER BY c.distance ASC
Run Code Online (Sandbox Code Playgroud)

Jay*_*ong 5

实际上,我们被告知只能根据文档的属性进行排序,而不能根据派生值进行排序。请参阅此链接。您的distance列是派生值,不能用于order by

\n\n
\n

\xe2\x80\x9c不支持的 ORDER BY 子句。ORDER BY 项表达式无法\n 映射到文档路径\xe2\x80\x9d

\n
\n\n

我建议您自己对查询结果进行排序。例如,在.net代码中,您可以使用Sort函数按列对结果进行排序。

\n