我想对我的 CosmosDb 做一些报告
我的查询是
Select Max(c.results.score) from c
那行得通,但我想要最高分的 id 然后我得到一个例外
Select c.id, Max(c.results.score) from c
'c.id' 在选择列表中无效,因为它不包含在聚合函数中
我想对我的 CosmosDb 做一些报告
我的查询是
Select Max(c.results.score) from c
那行得通,但我想要最高分的 id 然后我得到一个例外
Select c.id, Max(c.results.score) from c
'c.id' 在选择列表中无效,因为它不包含在聚合函数中
您可以执行以下查询来归档您要询问的内容(认为它在 RU/执行时间方面可能不是很有效):
Select TOP 1 c.id, c.results.score from c ORDER BY c.results.score DESC
Cosmos DB 本身不支持 Group by,因此没有开箱即用的方式来执行此查询。
要使用开箱即用的功能实现这一点,您需要创建一个包含聚合输出的新文档类型,例如
{ “id”:1,“highestScore”:1000 }
然后,您需要在您的应用程序中使用一个流程来保持最新状态。
还有 documentdb-lumenize 允许您使用存储过程来执行此操作。我自己没有使用过它,但它可能值得研究作为上述解决方案的替代方案。
链接是: