2014-10-31 129 views
1

我有2个节点:人和朋友有下一个结构: people:p_id;朋友:p_id,f_id如何在Neo4J中建立关系

我需要在它们之间建立关系[:KNOWS]。

我该怎么做?我是Neo4J的新手。

P.S.我正在使用Cypher

+2

我觉得你对一个节点是什么感到困惑。节点是关系世界中*行*的等价图,而不是表的等价物。我的意思是,People和Friends对节点/标签来说真的很奇怪,而'f_id'看起来像某种外键。 – 2014-10-31 11:32:33

回答

3

我认为这会为你做。基本上,您需要明确地匹配您想要创建关系的两个节点,然后在两个引用的节点之间创建与您想要的方向的关系。

match (p:People), (f:Friend) 
where p.id = 'xx' and f.id = 'xy' 
create (p)-[:KNOWS]->(f) 

裁判卡 - http://neo4j.com/docs/cypher-refcard/current/ - 一直是非常宝贵的我通过暗号的复杂工作。

+0

非常感谢!这对我来说似乎很有用。 – user3306125 2014-11-03 06:49:29

+0

但我怎么能做到这一点在所有的身份证在两个节点? – user3306125 2014-11-03 07:08:41

+0

您需要使用p_id到f_id关系来构建关系。如果你在csv中拥有所有的关系,那么你可以使用“load csv”过程。加载它们。这样的东西应该工作... LOAD CSV与标题从“file:/// Y:/pid_to_f_id.csv”AS rel MATCH(p:Person {id:rel.p_id}),(f:Friend {id:创建(p) - [:KNOWS] - >(f) – 2014-11-03 20:54:04