Cosmos DB如何将多条查询结果的Value合并为单条结果的数组属性
解决方案
你可以使用Cosmos DB SQL的ARRAY_AGG聚合函数搭配GROUP BY子句实现需求,ARRAY_AGG会将同分组内的指定字段值汇总为数组,具体查询语句如下:
SELECT c.Name, ARRAY_AGG(c.Value) AS Values FROM c WHERE c.Name = "abc" GROUP BY c.Name
语句说明
- 先通过
WHERE子句过滤出所有Name为abc的文档 - 按
Name字段分组,所有符合过滤条件的文档会被划分到同一分组 - 通过
ARRAY_AGG(c.Value)将分组内所有文档的Value字段值聚合为名为Values的数组 - 最终返回的结果就是你需要的单条聚合数据格式
如果你需要对全量文档中所有不同的Name值分别生成对应的Values数组,去掉语句中的WHERE子句即可,查询会返回每个Name对应的聚合结果。
内容的提问来源于stack exchange,提问作者Pt.Prashant Tripathi
相关产品推荐
相关产品推荐

