是否需要在Neo4j图中创建双向关系?

时间:2018-02-06 20:04:07

标签: neo4j

例如,

iPhone productOf Apple
Apple  produces iPhone

我可以在两个节点之间创建这样的两个关系。我可以这样查询:

1)哪家公司的产品是iPhone?

MATCH (Product {name:"iPhone"}) - [r:productOf] -> (company) return company

2)Apple产品有哪些产品?

MATCH (company {name:"Apple"}) - [r:produces] -> (products) return products

然而,即使没有第二关系“产生”,我仍然可以回答第二个问题:

MATCH (products) - [r:productOf] -> (company {name:"Apple"}) return products

因此,似乎没有必要在数据建模中创建两个节点之间的语义等效关系。真的吗?

1 个答案:

答案 0 :(得分:1)

是的,这是真的。

在任一方向上遍历关系(如您在问题中所示)同样简单有效。

此外,您甚至可以在不指定方向性的情况下遍历关系。