【发布时间】:2018-05-08 18:36:29
【问题描述】:
我正在使用 REST API 和 SQL for Cosmos db,需要返回按时间戳排序的查询结果(存储为 UNIX 数字时间戳)。我正在尝试使用简单的 ORDER BY 来做到这一点。
e.g. SELECT * FROM requests c ORDER BY c.timestamp
但是使用分区我得到错误:
"使用 TOP/ORDER BY 或聚合函数的跨分区查询不 支持。”
在集合设置中,字符串的索引精度设置为 -1,这是其他地方的建议,但仍然抛出错误。
如果我删除或设置为 false x-ms-documentdb-query-enablecrosspartition 标头,那么我会得到:
"需要跨分区查询,但已禁用。请设置 x-ms-documentdb-query-enablecrosspartition 为 true,指定 x-ms-documentdb-partitionkey,或修改您的查询以避免这种情况 例外。”
有没有人通过 SQL REST API 成功做到这一点?
谢谢。
【问题讨论】:
-
确保你禁用跨分区查询,错误是说你不能使用 OrderBy 启用它
-
如果我禁用跨分区查询,我会得到:“跨分区查询是必需的,但已禁用。请将 x-ms-documentdb-query-enablecrosspartition 设置为 true,指定 x-ms-documentdb-partitionkey,或修改您的查询以避免此异常。”
-
这是一个非常古老的集合吗?在他们添加对 Order by 和 Top 的支持之前,这曾经是一个问题。
标签: azure azure-cosmosdb