首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将属性重新分组为要返回的一个列表

将属性重新分组为要返回的一个列表
EN

Stack Overflow用户
提问于 2019-07-24 10:26:30
回答 1查看 32关注 0票数 0

我是neo4J的新手,目前我正在开发一个应用程序,其中包括谷歌饼图,以显示基于优先级的风险计数。我们在应用程序和这些应用程序之间的接口上存在风险。目标是用一个图例显示应用程序(节点)和接口(边)的风险。

我可以使图表工作,并在应用程序、节点和接口边缘显示风险,但我只能使用UNION来实现它。这个解决方案的问题是,我每种颜色都有两片,一片用于节点,另一片用于边缘。现在的情况如下:https://ibb.co/C5WtN1w

我也试过使用和收集,但我真的不明白它们是如何工作的,因为我得到了愚蠢的结果,像7k“黄色”,虽然总共有135黄色。

目前,我的请求是这样的

代码语言:javascript
复制
MATCH (n:Risk)
WHERE NOT (n.color="grey")
RETURN n.Priority as legend , count(*) AS count, n.color_hex AS colors ORDER by n.Priority
UNION 
MATCH ()-[r:INTERFACE]->()
WHERE (r.color="yellow" or r.color="orange" or r.color="red")
RETURN r.Priority AS legend, count(*) AS count, r.color_hex AS colors ORDER BY r.Priority

为了澄清这些性质:

  • 优先次序:高、中、低
  • 颜色:可以是红色(高)、橙色(中等)、黄色(低)、白色(未定义)或灰色(风险不再存在)。
  • color_hex:与颜色相同,但以六边形表示。我只使用它将正确的颜色传送到图表中。

是否有可能计算每种颜色的出现次数,并使合并来自n:Risk和r:接口的颜色的计数只列出每种颜色中的一种?

希望我已经说得够清楚了,信息在我脑海中流淌,所以它可能会让我感到困惑。

耽误您时间,实在对不起

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-24 13:24:25

UNION之后,我们无法处理结果。但是,通过将COLLECT展开相结合,可以得到预期的结果。

要获得合并的结果,您可以如下所示修改查询:

代码语言:javascript
复制
MATCH (n:Risk)
WHERE NOT (n.color="grey")
WITH collect({Priority: n.Priority , color_hex: n.color_hex}) AS risks
MATCH ()-[r:INTERFACE]->()
WHERE r.color IN ["yellow", "orange", "red"]
WITH risks + collect({Priority: r.Priority , color_hex: r.color_hex}) AS allRisks
UNWIND allRisks as risk
RETURN risk.Priority as legend , count(*) AS count, risk.color_hex AS colors
ORDER BY risk.Priority
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57180723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档