Neo4j图形数据库关系

Neo4j图形数据库关系,neo4j,cypher,graph-theory,Neo4j,Cypher,Graph Theory,我用Neo4j制作了一个关于爱尔兰2016年选举的图表数据库。我已经为每个候选人、选区和政党输入了节点 CREATE(n:Candidate{name:'Gerry Adams', gender:'Male' ,constituency:'Louth', party:'Sinn Fein'}); CREATE(n:Party{party:'Sinn Fein'}); CREATE(n:Constituency{constituency:'Louth'}); 所有的节点都在数据库中,我试图让

我用Neo4j制作了一个关于爱尔兰2016年选举的图表数据库。我已经为每个候选人、选区和政党输入了节点

CREATE(n:Candidate{name:'Gerry Adams', gender:'Male' ,constituency:'Louth', party:'Sinn Fein'});

CREATE(n:Party{party:'Sinn Fein'});

CREATE(n:Constituency{constituency:'Louth'});
所有的节点都在数据库中,我试图让它们连接起来,但我遇到了问题。这就是我试图添加的关系:

match (n{constituency:"Louth"}), (c{constituency:"Louth"}) create (n)-[r:FROM]->(c) return n,c;

我哪里出错了?

您的问题出现了,因为您没有使用带有标识符的标签。没有标签,每个nc都与Louth的选区匹配

我会先匹配选区,然后为每个选区匹配该选区的候选人。然后为每个匹配创建关系。这样,每个对象只匹配一次

像这样的

match (constituency:Constituency {constituency:"Louth"}) 
with constituency
match (candidate:Candidate {constituency:"Louth"})
create (candidate)-[r:FROM]->(constituency) 
return constituency,candidate;

出现问题的原因是您没有将标签与标识符一起使用。没有标签,每个nc都与Louth的选区匹配

我会先匹配选区,然后为每个选区匹配该选区的候选人。然后为每个匹配创建关系。这样,每个对象只匹配一次

像这样的

match (constituency:Constituency {constituency:"Louth"}) 
with constituency
match (candidate:Candidate {constituency:"Louth"})
create (candidate)-[r:FROM]->(constituency) 
return constituency,candidate;

您好,非常感谢您回复我,我不得不再次重做整个数据库,这次我使用了:
CREATE(n:候选人{姓名:'Gerry Adams',性别:'Male,选区:'Louth',政党:'sinfein'})
CREATE(p:Party{name:'sinfein'})
创建(c:选区{名称:'Louth'})
match(姓名:选区{name:“Louth”})与姓名匹配(选区:候选人{section:“Louth”})创建(选区)-[r:FROM]->(姓名)返回姓名,选区您好,非常感谢您回复我,我不得不再次重做整个数据库,这次我使用了:
创建(n:候选人{姓名:'Gerry Adams',性别:'Male,选区:'Louth',政党:'Sinn Fein'})
CREATE(p:Party{name:'sinfein'})
创建(c:选区{名称:'Louth'})
match(姓名:选区{name:“Louth”})与姓名匹配(选区:候选人{section:“Louth”})创建(选区)-[r:FROM]->(姓名)返回姓名,选区