Neo4j 无法解决密码查询的问题
我执行了下面的查询并删除了所有关系Neo4j 无法解决密码查询的问题,neo4j,cypher,Neo4j,Cypher,我执行了下面的查询并删除了所有关系 START n=node:search('username:donna') MATCH n-[rel18?:STATUS]->(n18)-[rel19?:NEXT*1..]->(n19) WITH n, rel18, n18, rel19, n19 FOREACH(rel IN rel19: DELETE rel) DELETE n19, n18, rel18; 结果:删除了6个关系和6个节点 现在,当我再次尝试执行相同的查询时,我得到一
START n=node:search('username:donna')
MATCH n-[rel18?:STATUS]->(n18)-[rel19?:NEXT*1..]->(n19)
WITH n, rel18, n18, rel19, n19
FOREACH(rel IN rel19: DELETE rel)
DELETE n19, n18, rel18;
结果:删除了6个关系和6个节点
现在,当我再次尝试执行相同的查询时,我得到一个错误未知标识符rel19
START n=node:search('username:donna')
MATCH n-[rel18?:STATUS]->(n18)-[rel19?:NEXT*1..]->(n19)
RETURN n.username, rel18, n18, rel19, n19;
事实上,即使下面的查询也会给出相同的错误未知标识符rel19
START n=node:search('username:donna')
MATCH n-[rel18?:STATUS]->(n18)-[rel19?:NEXT*1..]->(n19)
RETURN n.username, rel18, n18, rel19, n19;
我的域模型与此示例相同,
我正在尝试为相同的应用程序实现删除
此外,上面的删除查询(第一个查询)将是使用WITH子句附加的更大查询的一部分。因此,在某些情况下,特定用户可能没有任何状态和下一个关系,但整个查询仍应成功执行。请您帮助修改查询,以便查询在所有情况下都能正常运行
谢谢,
Pavan[rel19?:NEXT*1..]->(n19)
表示可选关系,因此此路径上的匹配语句可能包含也可能不包含此路径。如果它不包含此路径,它将不会进一步将其解析为return子句。返回子句将在不存在的标识符上输出错误。我建议像这样在返回之前放置一个WHERE条件
START n=node:search('username:donna')
MATCH n-[rel18?:STATUS]->(n18)-[rel19?:NEXT*1..]->(n19)
WITH n, rel18, n18, rel19, n19
WHERE n--n18
DELETE n19, n18, rel18
WITH rel19, n19
WHERE ()-[rel19:]-n19
DELETE n19
WITH rel19
FOREACH(rel IN rel19: DELETE rel)
感谢乌尔卡斯的回复,但我仍然面临同样的问题。