查找包含节点的所有关系的路径

时间:2016-12-15 23:58:03

标签: neo4j cypher

我正在尝试在图表中建模一些数据库关系。以下是我原型的示例图表:

image

蓝色节点代表对象。绿色节点表示对象之间的关系或连接。

如果需要访问对象4,则需要连接对象1和对象3的值。

我正在尝试查询对象1-3的路径:

match(one:Object {Name: "1"}),
   (three:Object {Name: "2"}),
    p = (one)-[RELATES*]-(three)
RETURN p

这为我提供了两条路径,一条是(1)-[a]-(2)-[b]-(3),另一条是(1)-[c]-(3)。后者无效,因为所有"关联"图中的边不在路径中。有没有办法过滤p相应的?

或者,有没有更好的方法来建立关系?

我可以表示来自a-> 1,b-> 2,c-> 3和&的边缘。 c-1为FROM且a-> 2,b-> 3,c-> 4为TO.

1 个答案:

答案 0 :(得分:0)

如果您将关系建模为关系是有意义的,那么您可以拥有这个简单的图形(关系类型为REL):

enter image description here

使用此数据模型,您可以通过以下方式获取有效路径:

MATCH p=(:Object {name: '1'})-[:REL*]->(:Object {name: '3'})
RETURN p;