查找包含至少一个具有特定属性的节点的所有子图

时间:2013-04-16 03:36:19

标签: neo4j cypher

我的图表由多个彼此断开连接的“子图”组成。这些子图由由与给定关系类型连接的节点组成。

我想得到(例如)包含至少一个节点的子图表列表,该节点的属性“name”等于“John”。

这相当于为每个具有此属性的子图找到一个节点。

一种解决方案是找到具有此属性的所有节点并循环遍历此列表,以仅选择未连接到先前选择的节点的节点。但这将是丑陋和沉重的。使用Cypher有一种优雅的方式吗?

我正朝着这个方向努力,但到目前为止还没有成功:

  

START source = node:user('name:“John”')
  MATCH源 - [r?:KNOWS *] - 目标
  其中r为空
  返回来源

1 个答案:

答案 0 :(得分:0)

试试这个可能会有所帮助

START source=node:user('name:"John"')
MATCH source-[r:KNOWS]-()-[r2:KNOWS]-target
WHERE NOT(source-[r:KNOWS]-target)
RETURN target