如何在DocumentDB中提出平坦计数输出

时间:2017-12-01 17:39:05

标签: javascript azure azure-cosmosdb

我正在尝试为DocumentDB中的文档计数提供一个简单,平坦的输出。例如,如果我有以下三个文件:

    { 
      "id": "1", 
      "statusId": "new", 
    }
    { 
      "id": "2", 
      "statusId": "new", 
    }
    { 
      "id": "3", 
      "statusId": "complete", 
    }

如果我在Azure Query Explorer中运行它:

    select Value Count(1) from c
    where c.statusId = "new"

我明白了:

[
  2
]

我想弄清楚怎么做的是产生一个看起来某事的结果:

{
    "new": 2,
    "complete" : 1
}

即使不可能,也可以一次在同一个窗口中运行多个选择。但是当我尝试在Query Explorer中遇到语法错误时,即

select Value Count(1) from c
where c.statusId = "new"

select Value Count(1) from c
where c.statusId = "complete"

生成

Syntax error, incorrect syntax near 'select'.

2 个答案:

答案 0 :(得分:2)

根据您的描述,您希望在azure cosmosdb查询中实现SELECT COUNT(*) FROM XXX GROUP BY XXX之类的函数。

根据我的经验,SQL中的azure cosmosdb aggregation功能仅限于COUNT, SUM, MIN, MAX, AVG个功能。 azure cosmosdb现在不支持GROUP BY或其他聚合功能。

但是,stored proceduresUDF可用于实现您的汇总要求。

您可以根据DocumentDb存储过程引用一个很棒的包documentdb-lumenize

希望它对你有所帮助。

答案 1 :(得分:0)

我很害怕,我没有给你一个简单的答案。您可以在获得结果后构建所需的JSON。

和第二,今天你不能在查询窗口中执行两个select语句。