我知道有两种类型的节点说(:RefNodeType1)
和(:RefNodeType2)
。两者在给定图中都有单个实例。然后我知道还有另外两种类型的节点(:TargetNodeType1)
和(:TargetNodeType2)
,每个节点都有多个实例。
我想知道(:TargetNodeType1)
和(:TargetNodeType2)
的所有实例,它们之间的路径与(:RefNodeType1)
和(:RefNodeType2)
之间的路径相同。在说“相同路径”时,我的意思是说路径上的关系和节点标签应该是相同的,并且应该以相同的顺序出现。
Pseudo cypher可能看起来像这样
MATCH path = (:RefNodeType1)-<path-description>-(RefNodeType2) //<path-description> can be anything, may include variable length relationship e.g. [:XYZ*1..]
WITH path
MATCH (a:TargetNodeType1)-<path>-(b:TargetNodeType2)
RETURN a,b
但我不知道如何指定<path>
,即如果变量path
中包含的路径也存在于TargetNodeType1
和TargetNodeType2
之间。我不知道这样的查询是否可能。但是,我怎么能这样做呢?还有什么可以更好的方法呢?