如何设计图来处理 neo4j 中的多向关系

How to design the graph to handle multi directional relationships in neo4j

我想了解在 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。我想知道我们是否可以以这种方式设计图形以根据条件查询结果到 return 从客户到品牌的路径。在我的案例中,客户想要的品牌是 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"})     

我只是想知道我们是否可以按照上述方式设计图形并妥善处理。

你只是表达你的模式

您可以在任何元素上添加条件,也可以在关系上添加条件,例如时间戳或偏好或相关性。

然后return任何节点、关系或整个路径。

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