Neo4j “创建唯一节点”创建重复节点

Neo4j “创建唯一节点”创建重复节点,neo4j,cypher,Neo4j,Cypher,我想做的是建立一种从一个人到一个授予学位节点的关系。这些学位节点中应该只有一个具有MBA,拥有MBA的每个人都将指向这一个节点 问题是,当我使用另一个人的startNode运行此查询时,它会创建一个新的Degree{value:'MBA'}节点。我怎么能让它都指向同一个MBA节点 我的密码查询: START startNode=node(1) CREATE UNIQUE startNode-[:HAS_EDUCATION]->(nodeEducation1:Education{gradu

我想做的是建立一种从一个人到一个授予学位节点的关系。这些学位节点中应该只有一个具有
MBA
,拥有
MBA
的每个人都将指向这一个节点

问题是,当我使用另一个人的
startNode
运行此查询时,它会创建一个新的
Degree{value:'MBA'}
节点。我怎么能让它都指向同一个
MBA
节点

我的密码查询:

START startNode=node(1)

CREATE UNIQUE
startNode-[:HAS_EDUCATION]->(nodeEducation1:Education{graduated_year:1901})

CREATE UNIQUE  nodeEducation1-[:AWARDED]->(a:Degree{value:'MBA'})

RETURN a;

“创建唯一”不会自行尝试匹配节点。 您可以使用该功能匹配
节点(仅在必要时创建一个),然后
创建唯一的
关系和中间节点

START startNode=node(9)
MERGE( phd:Degree {value: 'PHD'})
CREATE UNIQUE
startNode-[:HAS_EDUCATION]->(nodeEducation1:Education{graduated_year:1901})

CREATE UNIQUE  nodeEducation1-[:AWARDED]->phd

RETURN phd

这正是我想要的。谢谢