如何设计图形以处理neo4j中的多方向关系

时间:2018-04-26 21:56:52

标签: neo4j cypher relationships

我试图了解基于多种关系在neo4j中处理图形的方法。

例如:

让我们假设有一个包含三个节点Customer,Store和Brands的图表,这些节点之间存在以下关系:

Customer--Goesto-->Store  
Store--Sells-->Brand

“Customer”节点是“bharath”,“Store”节点是s1,s2和“Brand”节点b1,b2和b3。 s1卖出b1,b2和s2卖出b1,b3。我想知道我们是否可以这样设计图表来查询结果,以便根据条件返回从客户到品牌的路径。在我的案例中,客户想要的是b2。

所需图表:

    Let the nodes be (:Customer) = c, (:Store) = s, (:Brand) = b

                      (c{name:"Blah"})
                              |
                          [:Goesto]
                         /         \
                 (s:{sname"s1")   (s{sname:{"s2"})
                     /                \
                 [:Sells]          [:Sells]
               /          \        /
    (b{bname:"b1})  (b{bname:"b2"})     

我只是想知道我们是否可以设计图表并以上述方式正确处理。

1 个答案:

答案 0 :(得分:0)

你只是表达你的模式

您可以为任何元素添加条件,也可以添加关系,例如时间戳或首选项或相关性。

然后返回任何节点,关系或整个路径。

MATCH path = (c:Customer {name:"Blah"})-[goes:GoesTo]->(s:Store)-[sells:Sells]-(b:Brand {name:"b2})
WHERE condition
RETURN path