如果我从neo4j中的给定节点开始,我正在尝试使用Cypher来获取存在的整个图形。当我说整个图形时,我指的是连接到图形中至少一个其他节点的所有节点和关系。
我见过一些例子,人们可以获得可能连接到具有已知关系的给定起始节点的所有节点。这方面的示例包括this和this,但如果我不了解这些关系,我怎么能这样做呢?
最终我想要从一个给定节点开始并扩展的每个节点和关系,列出每个关系链接的节点。
我试过这个:
START n=node(441007) MATHC (n)-[:*]->(d) RETURN d
但语法不正确。我不确定你是否可以提交通配符关系。另外我不认为这会给我我想要的东西。
答案 0 :(得分:1)
试试这个:
MATCH (n)-[r*]->(d)
WHERE ID(n) = 441007
RETURN r, d
这将从n扇出(如果使用较旧版本的Neo,则应恢复为START语法)并返回可到达的每个d
节点的路径。通过不定义关系标签,它是关系类型不可知的。如果您不关心路径,可以省略它:
MATCH (n)-[*]->(d)
WHERE ID(n) = 441007
RETURN d
显然,在大图上,这将变得昂贵!
修改强>
要添加指向cheat sheet的链接,请查看“模式”部分。
答案 1 :(得分:0)
Hej WildBill,
我创建了一个用于学习Neo4J的公司图表,所以我针对图表发送了以下模式,得到了这个结果:
START a=node(9)
MATCH (a)<-[rel]-(d)
MATCH (d)-[sk]->(skill)
RETURN a, d, skill
节点9是我的公司,它是图表的一部分。