无法获得标识符和最大值CosmostDb

时间:2018-06-14 11:26:13

标签: azure nosql azure-cosmosdb nosql-aggregation

我想对我的CosmosDb做一些报道

我的查询

Select Max(c.results.score) from c 

这有效,但我想得到最高分的id然后我得到一个例外

Select c.id, Max(c.results.score) from c
  

'c.id'在选择列表中无效,因为它不包含在   聚合函数

2 个答案:

答案 0 :(得分:1)

您可以执行以下查询来存档您所询问的内容(认为它在RU /执行时间条件下效率不高):

Select TOP 1 c.id, c.results.score from c ORDER BY c.results.score DESC

答案 1 :(得分:0)

Cosmos DB本身不支持分组依据,因此没有开箱即用的方法来执行此查询。

要使用开箱即用功能实现此功能,您需要创建一个包含汇总输出的新文档类型,例如:

{ “id”:1, “最高分数”:1000 }

然后,您需要在应用程序中使用一个流程来保持最新状态。

还有documentdb-lumenize允许您使用存储过程执行此操作。我自己没有使用它,但可能值得研究以上解决方案的替代方案。

链接是:

https://github.com/lmaccherone/documentdb-lumenize