Neo4j cypher查询以查看给定节点是否已连接
给定以下节点B、E、F、G、H、J、K,我必须编写一个neo4j查询来检查这些节点是如何相互连接的 例如,假设这是我想要显示的模式Neo4j cypher查询以查看给定节点是否已连接,neo4j,cypher,Neo4j,Cypher,给定以下节点B、E、F、G、H、J、K,我必须编写一个neo4j查询来检查这些节点是如何相互连接的 例如,假设这是我想要显示的模式 B-H-F | G-J-K-E 显示此图形的查询是什么?我不想显示连接到这些节点的所有其他节点。您需要找到每对源节点之间的路径 确保每个路径仅包含源集中包含的节点 您可以使用密码执行此操作: WITH {GIVEN_NODES} as NDS // The source array of node IDs UNWIND RANGE(0, size(
B-H-F
|
G-J-K-E
显示此图形的查询是什么?我不想显示连接到这些节点的所有其他节点。您需要找到每对源节点之间的路径 确保每个路径仅包含源集中包含的节点 您可以使用密码执行此操作:
WITH {GIVEN_NODES} as NDS // The source array of node IDs
UNWIND RANGE(0, size(NDS)-2) as i
UNWIND RANGE(i+1, size(NDS)-1) as j
WITH NDS,
NDS[i] as N1,
NDS[j] as N2
MATCH path = (N1)-[*]-(N2)
WHERE length(path)+1 <= size(NDS) AND
ALL(n in nodes(path) WHERE n in NDS)
RETURN path
将{gived_NODES}作为NDS//节点ID的源数组
展开范围(0,尺寸(NDS)-2)与i相同
展开范围(i+1,尺寸(NDS)-1)为j
对于NDS,
NDS[i]作为N1,
NDS[j]as-N2
匹配路径=(N1)-[*]-(N2)
其中长度(路径)+1