我的图表由多个彼此断开连接的“子图”组成。这些子图由由与给定关系类型连接的节点组成。
我想得到(例如)包含至少一个节点的子图表列表,该节点的属性“name”等于“John”。
这相当于为每个具有此属性的子图找到一个节点。
一种解决方案是找到具有此属性的所有节点并循环遍历此列表,以仅选择未连接到先前选择的节点的节点。但这将是丑陋和沉重的。使用Cypher有一种优雅的方式吗?
我正朝着这个方向努力,但到目前为止还没有成功:
START source = node:user('name:“John”')
MATCH源 - [r?:KNOWS *] - 目标
其中r为空
返回来源
答案 0 :(得分:0)
试试这个可能会有所帮助
START source=node:user('name:"John"')
MATCH source-[r:KNOWS]-()-[r2:KNOWS]-target
WHERE NOT(source-[r:KNOWS]-target)
RETURN target