如果您希望能够区分 a 知道 b 和 b 知道 a,那么您需要有两个关系。否则,在查询时,您可以通过省略方向轻松获得两者。
同样,随着啤酒被喜欢,你真的只需要定义一个方向。
举一个真实的例子:连接是相互的 facebook/linkedin 模型只需要一个方向/关系,但是一个人可以跟随另一个人(但另一个人不必跟随他们)的 twitter 模型,你需要两种关系——每个方向一个。
更新一些查询示例:
CREATE
(joe {name:"Joe"}),
(jim {name:"Jim"}),
(bob {name:"Bob"}),
(beer {name:"Beer"}),
joe-[:friends_with]-jim,
joe-[:friends_with]-bob,
bob-[:likes]->beer;
给朋友们:
START person=node:node_auto_index(name="Joe")
MATCH (person)-[:friends_with]-(friend)
RETURN person, friend;
还有喜欢啤酒的朋友们:
START person=node:node_auto_index(name="Joe"), beer=node:node_auto_index(name="Beer")
MATCH (person)-[:friends_with]-(friend)-[:likes]->(beer)
RETURN person, friend, beer;