javascript - 如何在 DocumentDB 中得出平面计数输出

标签 javascript azure azure-cosmosdb

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

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

如果我在 Azure 查询资源管理器中运行此命令:

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

我明白了:

[
  2
]

我试图弄清楚如何产生一个看起来像这样的结果:

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

即使这是不可能的,也可以一次在同一窗口中运行多个选择。但是,当我尝试这样做时,我在查询资源管理器中收到语法错误,即

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'.

最佳答案

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

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

但是,可以使用存储过程UDF来实现您的聚合需求。

你可以引用一个很棒的包documentdb-lumenize基于DocumentDb存储过程。

希望对您有帮助。

关于javascript - 如何在 DocumentDB 中得出平面计数输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47598690/

相关文章:

Azure Cosmos DB 函数 - 删除文档

c# - Azure函数错误: Microsoft. Azure.WebJobs.Host : Error indexing method 'Function1' .无法将参数 'document'绑定(bind)到类型IAsyncCollector`

javascript - jQuery:拖放到多个列表,而不是追加或重新拖动

JavaScript/jQuery "if"条件语法

javascript - 改变鼠标位置

azure应用程序服务中的Python ModuleNotFoundError包

javascript - FullCalendar eventDrop 应该是全天

具有现有数据库的 Azure 移动服务(无需架构更改)

python - 创建 Azure Blob 服务容器并使其可供公开读取

javascript - 如何在版本 ^3 上使用 gremlin 启动与 Cosmos DB 图形数据库的新连接