如何确定关系的动词方向?
例如,我有一个国家属于一个子区域,而这个子区域又属于一个地区。哪一个更好,并且是否有任何关于决定方向的规则。
(地区)-[拥有]-(子区域)-[拥有]-(国家)
或者
(地区)<-[属于]-(子区域)<-[属于]-(国家)
谢谢 San
如何确定关系的动词方向?
例如,我有一个国家属于一个子区域,而这个子区域又属于一个地区。哪一个更好,并且是否有任何关于决定方向的规则。
(地区)-[拥有]-(子区域)-[拥有]-(国家)
或者
(地区)<-[属于]-(子区域)<-[属于]-(国家)
谢谢 San
(:Person)-[:ACTED_IN]->(:Movie)
(:Person)-[:DIRECTED]->(:Movie)
ACTED_IN
类型,因为一个外向关系也可以是DIRECTED
类型。这意味着neo4j必须明确测试其每个外向关系的类型):MATCH (:Person {id: 123})-[:ACTED_IN]->(m:Movie)
RETURN m;
然而,如果您的数据模型将 DIRECTED
类型替换为具有相反方向性的 DIRECTED_BY
类型,则它看起来会像这样:
(:Person)-[:ACTED_IN]->(:Movie)
(:Person)<-[:DIRECTED_BY]-(:Movie)
通过这个调整,你的查询可以更加简洁和快速(因为Neo4j不需要测试关系类型):
MATCH (:Person {id: 123})-->(m:Movie)
RETURN m;
为了完整起见,请注意,在上述两个MATCH
模式中,我们实际上可以删除:Movie
标签,因为在两个数据模型中,ACTED_IN
终节点将始终具有Movie
标签。