【发布时间】:2024-10-07 18:55:01
【问题描述】:
假设我有一个包含 A 和 B 类型节点的有向图。A 类型的节点可以连接到 A 或 B 类型的节点,而 B 类型的节点没有传出连接。
此外,节点 B 具有 boolean 属性。我需要找到所有节点 A :
与节点 B 没有直接或间接连接
如果节点 A 与至少 1 个节点 B 有连接,则仅当所有连接的节点 B 的属性设置为 true 时才应返回。
或者换句话说,我需要找到所有未连接到任何 B 且属性设置为 false 的 A。
我试图通过查询来做到这一点:
OPTIONAL MATCH (a:A)-[*]->(b:B)
WITH a,b, collect(b) as bc
WITH a,b,COLLECT(bc) AS coll
UNWIND coll as unwinded
WITH a,b,unwinded
WHERE ALL (x IN unwinded WHERE x.prop = true)
return a
但如果他们至少有 1 个 b 和 prop=true,它会返回我 A。我做错了什么?
谢谢!
【问题讨论】: