Neo4j 需要密码查询的帮助吗

Neo4j 需要密码查询的帮助吗,neo4j,cypher,Neo4j,Cypher,我需要一些帮助来进行密码查询。 在我的neo4j数据库中,我有元素节点,它们由关系节点而不是关系节点链接,我希望找到从节点继承的所有节点。例如,如果我有B->A,c->B和D->A,其中->表示继承,那么当我请求检索从A继承的元素时,我希望检索B,c和D 我已经编写了一个cypher查询,它在一个级别上运行良好,我用节点id替换了a: Start node=node(A) match (node)-[:IS_SOURCE_OF]->relation<-[:IS_TARGET_OF

我需要一些帮助来进行密码查询。 在我的neo4j数据库中,我有元素节点,它们由关系节点而不是关系节点链接,我希望找到从节点继承的所有节点。例如,如果我有B->A,c->B和D->A,其中->表示继承,那么当我请求检索从A继承的元素时,我希望检索B,c和D

我已经编写了一个cypher查询,它在一个级别上运行良好,我用节点id替换了a:

Start 
node=node(A) 
match
(node)-[:IS_SOURCE_OF]->relation<-[:IS_TARGET_OF]-target
where
relation.relationType="INHERIT"
return target.uuid
这个查询返回B和D,但我也不知道如何返回C

有人能帮我吗


非常感谢

Cypher允许在单个关系上进行可变长度匹配,但不是您设计图表的方式。要在示例中找到节点c,需要执行以下操作:

Start node=node(A) 
match (node)-[:IS_SOURCE_OF]->(r1)<-[:IS_TARGET_OF]-()-[:IS_SOURCE_OF]->(r2)<-[:IS_TARGET_OF]-(target)
where
r1.relationType="INHERIT" AND r2.relationType="INHERIT"
return target.uuid
start node=node(a)
match node-[:INHERITS*]->target
return target.uuid