Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用cypher将节点链接到Neo4j中的新节点之前,如何检查节点是否已经存在_Neo4j_Cypher_Relationship_Nodes - Fatal编程技术网

在使用cypher将节点链接到Neo4j中的新节点之前,如何检查节点是否已经存在

在使用cypher将节点链接到Neo4j中的新节点之前,如何检查节点是否已经存在,neo4j,cypher,relationship,nodes,Neo4j,Cypher,Relationship,Nodes,我是Neo4j和cypher方面的新手,希望得到一些解决问题的帮助。我们将不胜感激 这是我的问题: 我创建了两个节点,一个作为用户,一个作为城市,链接到用户 图形设置 CREATE (n:User{firstName : "John", lastName : "Doe"}); MATCH (user:User{firstName : "John", lastName : "Doe"}) Return user; 查询: MATCH (user:User) WHERE user.firstNa

我是Neo4j和cypher方面的新手,希望得到一些解决问题的帮助。我们将不胜感激

这是我的问题:

我创建了两个节点,一个作为用户,一个作为城市,链接到用户

图形设置

CREATE (n:User{firstName : "John", lastName : "Doe"});

MATCH (user:User{firstName : "John", lastName : "Doe"})
Return user;
查询:

MATCH (user:User)
WHERE user.firstName = "John"
CREATE (city:City { cityName:"Liverpool", areaCode:"34343" })
CREATE (user)-[:STUDY_IN]->(city);
现在我想创建一个新节点(用户),并将该用户链接到现有节点(城市:利物浦)

我是这样做的:

MATCH (city:City)
WHERE city.cityName = "Liverpool"
CREATE (user:User { firstName : "Kent", lastName : "Clark" })
CREATE (user)-[:STUDY_IN]->(city);
在现实生活中,我需要在创建关系之前检查城市是否存在,如果它不存在,那么我想为该城市创建一个新节点

您可以在此处看到我的代码:

使用
MERGE
命令,如果某个模式存在,则该命令将匹配该模式;如果该模式不存在,则创建该模式

CREATE (user:User{firstName: "Kent", lastName: "Clark"})
MERGE (city:City{cityName: "Liverpool"})
CREATE (user)-[:STUDY_IN]->(city)
RETURN user, city
您还可以将创建时的
和匹配时的
合并时的
一起使用。例如:

MERGE (city:City{cityName: "Manchester"})
ON CREATE SET city.foo = "bar"
ON MATCH SET city.baz = "qux"
在本例中,如果城市不存在,将创建城市,并且属性
foo
设置为
“bar”
。如果它已经存在,则属性
baz
将设置为
“qux”


要更深入地了解
MERGE

您是否看到了Cypher
MERGE
ON MATCH
ON CREATE
子句?我使用了第一个建议,它解决了我的问题。Thx@stephenmuss