Cypher:找到连接父节点的节点关系

时间:2016-07-01 21:54:59

标签: neo4j cypher

我希望这个图表足以解释我之后的事情:

                   true
          a--------------------b
          |                    |
   parent |                    | parent
          |                    |
         a_e------------------b_e
               experimental

节点a_e和b_e是实验观察结果,每个节点只有一个父节点a和b。我知道a和b之间存在真正的关系,我想找到在a_e和b_e之间观察到实验关系的情况。除其他外,我尝试了以下内容:

 MATCH (n)-[:true]-(m)
 WITH n,m
 MATCH (n)-[:parent]-(i)
 MATCH (m)-[:parent]-(j)
 WITH i,j
 OPTIONAL MATCH (i)-[r]-(j)
 RETURN r

但这不会返回任何行。我认为这就像一个嵌套循环,匹配所有i和所有j之间的所有可能的关系。这种查询是否可行?

1 个答案:

答案 0 :(得分:3)

这样的东西
match (n)-[:true]-(m) 
match (n)-[:parent]->(n_child)-[:experimental]-(m_child)<-[:PARENT]-(m) 
return  n_child,m_child

(未经测试)

假设这是一个例子,你的节点上有标签等。