Neo4j cypher命令执行期间节点未连接

Neo4j cypher命令执行期间节点未连接,neo4j,cypher,Neo4j,Cypher,我试图创建一个地点,创建一个会议,通过索引找到两个人,然后将他们全部连接在一起。首先,我因为没有在Merge和Match之间使用WITH而被骂,但是当查询运行时,我让两个人连接到一个meetup,但是位置是一个空节点,并且位置节点在空间中浮动。你知道我做错了什么吗 MERGE (location:Location{location_name:"Starbucks", address:"300 S Main St", city: "Ann Arbor", state: "MI", zip_code

我试图创建一个地点,创建一个会议,通过索引找到两个人,然后将他们全部连接在一起。首先,我因为没有在Merge和Match之间使用WITH而被骂,但是当查询运行时,我让两个人连接到一个meetup,但是位置是一个空节点,并且位置节点在空间中浮动。你知道我做错了什么吗

MERGE (location:Location{location_name:"Starbucks", address:"300 S Main St", city: "Ann Arbor", state: "MI", zip_code:"48104", phone_number:"", web_address:""}) WITH location

MERGE(m:Meetup{meet_date:"2015-09-17", meet_time:"14:00:00",status:"Pending",did_happen:""})
WITH m

MATCH(p1:Person{username:"wkolcz"})

MATCH(p2:Person{username:"stubbe"})

MERGE (p1)-[:REQUESTED]->(m)<-[:WAS_REQUESTED]-(p2)

MERGE (m)-[:MEETUP_AT]->(location)-[:HOSTED_MEETUP]->(m)
合并(地点:地点{地点名称:“星巴克”,地址:“300 S大街”,城市:“安娜堡”,州:“MI”,邮编:“48104”,电话号码:,网址:”})与地点
合并(m:Meetup{meet_date:“2015-09-17”,meet_时间:“14:00:00”,状态:“待定”,是否发生:“}”)
与m
匹配(p1:Person{用户名:“wkolcz”})
匹配(p2:Person{username:“stubbe”})
合并(p1)-[:请求的]->(m)(位置)-[:托管的会议]->(m)

首先,您需要将
Person
节点上的两个
MATCH
语句更改为使用
MERGE
(除非这些节点已经存在于图形中)

其次,在
WITH
子句中,必须添加
location
。您必须在
WITH
语句中包含任何要传递到查询下一部分的变量。有关

以下是完整的查询:

MERGE (location:Location{location_name:"Starbucks", address:"300 S Main St", city: "Ann Arbor", state: "MI", zip_code:"48104", phone_number:"", web_address:""}) WITH location
MERGE (m:Meetup{meet_date:"2015-09-17", meet_time:"14:00:00",status:"Pending",did_happen:""})
WITH m, location
MERGE (p1:Person{username:"wkolcz"})
MERGE (p2:Person{username:"stubbe"})
MERGE (p1)-[:REQUESTED]->(m)<-[:WAS_REQUESTED]-(p2)
MERGE (m)-[:MEETUP_AT]->(location)-[:HOSTED_MEETUP]->(m)
合并(地点:地点{地点名称:“星巴克”,地址:“300 S大街”,城市:“安娜堡”,州:“MI”,邮编:“48104”,电话号码:,网址:”})与地点
合并(m:Meetup{meet_date:“2015-09-17”,meet_时间:“14:00:00”,状态:“待定”,是否发生:“}”)
用m表示位置
合并(p1:Person{用户名:“wkolcz”})
合并(p2:Person{username:“stubbe”})
合并(p1)-[:请求的]->(m)(位置)-[:托管的会议]->(m)

是否要确保
位置
会议
存在,即使未找到
人员
?或者,如果两个人都找到了,您是否只想对数据库进行更改?应该始终找到人,首先是用户和他在站点上找到的人。将始终创建会议,并且可以找到或创建位置。我是否应该更改会议以创建?我是否需要第一次会议?或者仅仅是匹配和合并之间的with?不需要第一个with(在位置上合并后),因为此时
location
是范围中唯一的绑定变量。