【发布时间】:2019-05-08 13:17:00
【问题描述】:
我正在尝试根据字符串状态选择数据。我想要的是状态'草稿'首先出现,所以我尝试了这个:
SELECT *
FROM c
ORDER BY c.status = "draft" ? 0:1
我收到一个错误:
不支持的 ORDER BY 子句。 ORDER BY 项目表达式无法映射到文档路径
我查看了 Microsoft 网站,我看到了这个:
ORDER BY 子句要求索引策略包括正在排序的字段的索引。 Azure Cosmos DB 查询运行时支持根据属性名称而非计算属性进行排序。
我想这使我想用查询做不可能的事情......我怎么能做到这一点?使用存储过程?
编辑:
关于存储过程:实际上,我只是在考虑这个问题,这意味着,我需要在订购之前检索所有数据,这会很糟糕,因为我从数据库中获取最大 100 个值...有什么办法吗?可以这样做,所以我不必先检索所有数据?谢谢
谢谢!
【问题讨论】:
-
您需要将此值存储在属性中。你不能做这样的内联计算。
-
您好,我的回答对您有帮助吗?如果有,您可以将其标记为已回答。谢谢。
-
您好 Jay,我在评论部分问了您一个问题(请参阅我帖子的编辑部分),我想知道使用 store proc 是否会让我在只想订购时扫描整个数据库?
标签: azure-cosmosdb