获取neo4j中特定节点的树
我想要一个给定节点的所有子节点彼此互连。例如A->B->C->D是一棵树,我想要一棵来自A(起点)的树,输出应该是获取neo4j中特定节点的树,neo4j,cypher,Neo4j,Cypher,我想要一个给定节点的所有子节点彼此互连。例如A->B->C->D是一棵树,我想要一棵来自A(起点)的树,输出应该是 A->B B->C C->D 而不是 A->B A->C A->D MATCH(fromNode:Part{partNumber:“100”})-[:HAS_BOM_PROPERTY]->(BomNode:BomProperties)-[*]->(toNode:Part)返回fromNode{.*}、toNode{.*}、BomNode{.*} 我在使用上面的查询,它给出了所有级别
A->B
B->C
C->D
而不是
A->B
A->C
A->D
MATCH(fromNode:Part{partNumber:“100”})-[:HAS_BOM_PROPERTY]->(BomNode:BomProperties)-[*]->(toNode:Part)返回fromNode{.*}、toNode{.*}、BomNode{.*}
我在使用上面的查询,它给出了所有级别上与partNumber 100连接的所有节点,但我希望它们与各自的父元素以及它们之间的关系,而不是所有节点都直接连接到partNumber 100。这样的情况如何::
MATCH path=(fromNode:Part{partNumber:"100"})-[:HAS_BOM_PROPERTY]->(BomNode:BomProperties)-[*]->(toNode:Part)
// get all the relationships
UNWIND relationships(path) AS rel
// remove duplicates
WITH DISTINCT rel
RETURN startNode(rel) AS fromNode,endNode(rel) AS toNode
这里我得到了一些东西,但我期望的是中间节点以及开始和结束节点…这是bomNode这里。。。例如:-A->b->C,其中A和C是零件类型的节点,b是BOMProperty类型的节点。这里我需要从A->C开始的路径以及b作为bomNode。谢谢你的建议,这会让我更进一步。