Neo4j cypher命令执行期间节点未连接
我试图创建一个地点,创建一个会议,通过索引找到两个人,然后将他们全部连接在一起。首先,我因为没有在Merge和Match之间使用WITH而被骂,但是当查询运行时,我让两个人连接到一个meetup,但是位置是一个空节点,并且位置节点在空间中浮动。你知道我做错了什么吗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 (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
是范围中唯一的绑定变量。