获取节点N是neo4j的一部分的完整图表

时间:2014-09-07 05:19:32

标签: neo4j

如果我从neo4j中的给定节点开始,我正在尝试使用Cypher来获取存在的整个图形。当我说整个图形时,我指的是连接到图形中至少一个其他节点的所有节点和关系。

我见过一些例子,人们可以获得可能连接到具有已知关系的给定起始节点的所有节点。这方面的示例包括thisthis,但如果我不了解这些关系,我怎么能这样做呢?

最终我想要从一个给定节点开始并扩展的每个节点和关系,列出每个关系链接的节点。

我试过这个:

START n=node(441007) MATHC (n)-[:*]->(d) RETURN d

但语法不正确。我不确定你是否可以提交通配符关系。另外我不认为这会给我我想要的东西。

2 个答案:

答案 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

Result of the query

节点9是我的公司,它是图表的一部分。