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
Neo4j 2.2.2和错误的密码查询_Neo4j_Cypher_Spring Data Neo4j_Graph Databases - Fatal编程技术网

Neo4j 2.2.2和错误的密码查询

Neo4j 2.2.2和错误的密码查询,neo4j,cypher,spring-data-neo4j,graph-databases,Neo4j,Cypher,Spring Data Neo4j,Graph Databases,继续回答这个问题 我已经转到Neo4j 2.2.2,现在有一个问题,就是在以前的Neo4j 2.1.7上,一个密码查询可以正常工作 我使用Spring数据Neo4J: @Query("MATCH (d:Decision) WHERE id(d) IN {decisionsIds} WITH d OPTIONAL MATCH (d)-[r]-(t) DELETE d, r WITH t, r OPTIONAL MATCH (t)-[r2:VOTED_ON|:CREATED_BY|:VOTED_FO

继续回答这个问题

我已经转到Neo4j 2.2.2,现在有一个问题,就是在以前的Neo4j 2.1.7上,一个密码查询可以正常工作

我使用Spring数据Neo4J:

@Query("MATCH (d:Decision) WHERE id(d) IN {decisionsIds} WITH d OPTIONAL MATCH (d)-[r]-(t) DELETE d, r WITH t, r OPTIONAL MATCH (t)-[r2:VOTED_ON|:CREATED_BY|:VOTED_FOR]-() WITH t, r2, r WHERE none(x in labels(t) WHERE x in ['User', 'Decision']) DELETE t, r2")
void deleteDecisions(@Param("decisionsIds") List<Long> decisionsIds);
有什么不对劲

已更新

调试后,我发现无法加载id为227的节点227是子节点id。。例如,我有一个ParentNode(id=201)和一个ChildNode(id=227)。我想删除ParentNode及其所有子节点。通过这种方式,我需要传递父节点和子节点的
{decisionsIds}
id(顺序为[227,201]-首先是子节点,然后是父节点),现在的问题是Cypher查询无法删除子节点,错误如下无法加载id为227的节点。。但是为什么它在Neo4j 2.1.7中工作,以及如何在Neo4j 2.2.2中修复它

附加信息非常有用。问题可能是
t
可以是已删除的子节点

尝试此查询,以确保初始删除后使用的
t
不是已删除的节点

MATCH (d:Decision)
WHERE id(d) IN {decisionsIds}
OPTIONAL MATCH (d)-[r]-(t)
DELETE d, r
WITH t, r
WHERE NOT (id(t) IN {decisionsIds})
OPTIONAL MATCH (t)-[r2:VOTED_ON|:CREATED_BY|:VOTED_FOR]-()
WHERE r2 <> r
WITH t, r2
WHERE none(x in labels(t) WHERE x in ['User', 'Decision'])
DELETE t, r2;
匹配(d:决策)
其中,{decisionsIds}中的id(d)
可选匹配(d)-[r]-(t)
删除d,r
用t,r
其中不是(id(t)在{decisionsIds}中)
可选匹配(t)-[r2:投票决定|:创建人|:投票决定]-()
r2 r在哪里
用t,r2
其中无(x在标签中(t),其中x在['User','Decision']中)
删除t,r2;

感谢您的回答,我已经从查询中删除了“r”,但它没有帮助(-MATCH(d:Decision)WHERE id(d)IN{decisionsIds}与d可选匹配(d)-[r]-(t)删除d,r WITH t可选匹配(t)-[r2:vote_ON |:CREATED|:vote_for]()WITH t,r2 WHERE none(x IN label(t)WHERE x IN['User','Decision']))DELETE t,r2添加了这个新查询,但仍然没有帮助(@query(“在{decisionsIds}中匹配(d:Decision)其中id(d)与d可选匹配(d)-[r]-(t)DELETE d,r与t,r可选匹配(t)-[r2:voated_ON |:CREATED|:voated|]-()其中r2r与t匹配,r2没有(x在标签(t)中,其中x在['User','Decision']中)删除t,r2”)@cybesam,我已经更新了我的问题的更多细节。你能看一下吗?我又更新了我的答案。如果这有帮助,你能分享一下这个问题吗?cybersam,非常感谢!!现在一切都很好!为什么它要在Neo4j 2.1.7上工作?
MATCH (d:Decision)
WHERE id(d) IN {decisionsIds}
OPTIONAL MATCH (d)-[r]-(t)
DELETE d, r
WITH t, r
WHERE NOT (id(t) IN {decisionsIds})
OPTIONAL MATCH (t)-[r2:VOTED_ON|:CREATED_BY|:VOTED_FOR]-()
WHERE r2 <> r
WITH t, r2
WHERE none(x in labels(t) WHERE x in ['User', 'Decision'])
DELETE t, r2;