我想找到一个元素发生了多少次,我想从样本中获取元素计数。如果我们看到数据。元素出现两次,像Name这样的内部元素出现两次。这样,我想找到元素出现的次数。
我尝试查看group by子句,但在CosmosDB中找不到任何group by选项。
{“数据”:[[{{元素“:[{”名称“:”马“,”性别“:”男性“,”城市“:”纽约“,”州“:”纽约“}, {“性别”:“女性”,“城市”:“洛杉矶”,“州”:“加利福尼亚”}},{“名称”:“布鲁斯”,“性别”:“男性”,“城市”:“芝加哥” “}],”细分“:[{”低“:” 20“,”块“:” 227“,”子代码“:” MIRROR“,” Legal_Desc_Map_Plat_Type_Indicator“:” PLA“}],”元素“:[{ “名称”:“马”,“性别”:“男性”,“城市”:“纽约”},{“性别”:“女性”,“城市”:“洛杉矶”,“州”:“加利福尼亚州” },{“名称”:“布鲁斯”,“性别”:“男性”,“州”:“伊利诺伊州”}]}]],“ _ts”:1559463991}
结果类似。 Element = 2,Element.Name = 2等等。
答案 0 :(得分:0)
首先,您的屏幕快照是不可能的。Elements
键不能在单个对象中重复。
您的要求可以通过COUNT
聚合函数来实现。
对于元素:
SELECT value(count(data.Elements))
FROM c
join data in c.data
结果:
姓名:
SELECT value(count(elem.Name))
FROM c
join data in c.data
join elem in data.Elements
结果:
为您的进一步需求:
由于WHERE子句中不允许聚合,
也许您需要自己处理结果。 Group By
自然不受支持(),但是您可以基于DocumentDb存储过程了解一个很棒的软件包feedback。您可以计算elements
并按其他列进行分组,例如id
。