【发布时间】:2018-06-28 13:14:36
【问题描述】:
我有一个图表,其中绿色节点可能链接到一个或多个红色节点,然后链接到一组蓝色节点。红色节点也有一个 amt 属性,它指示集合中蓝色节点的最小数量,需要匹配才能“满足”红色节点。如果一组给定的蓝色节点满足绿色节点的所有红色邻居,则该组“有资格”成为绿色节点。
例子
如何编写一个密码查询来返回一组给定蓝色节点的所有合格绿色节点?
如果其红色邻居的所有蓝色节点都匹配,我想出了以下返回绿色节点。但是,我不需要匹配所有,而是为每个红色节点指定的 amt。
MATCH (g:Green)-->(r:Red)-->(b:Blue)
WITH g, COLLECT(b.name) AS myset
WHERE ALL(n in myset where n in ["1", "2", "3", "4", "8", "9", "11"])
RETURN p
【问题讨论】: