我最近一直在尝试使用REST API。我的工作周期涉及运行我的测试程序,该程序向我的graphDB添加节点关系,然后使用带有Cypher命令的neo4j-shell删除它们作为下一次测试运行的准备。一切顺利,直到删除开始失败。起初我以为这是因为我的删除包含了单个事务的太多节点,所以我试图限制范围。它没有帮助。我看到了......
neo4j-sh (?)$ match (s:Tweeter)-[m:Tweet]->(r:Tweeter) where s.handle =~ '@C.*' delete s,m,r;
+-------------------+
| No data returned. |
+-------------------+
Nodes deleted: 12
Relationships deleted: 21
80 ms
TransactionFailureException: Transaction was marked as successful, but unable to commit transaction so rolled back.
我不知道下一步该尝试什么。我在服务器日志中看不到任何线索。
答案 0 :(得分:2)
也许您需要删除节点的关系?
MATCH
(s:Tweeter)-[m:Tweet]->(r:Tweeter)
WHERE s.handle =~ '@C.*'
OPTIONAL MATCH
s-[orel1]-(),
r-[orel2]-()
DELETE s,m,r,orel1,orel2;
答案 1 :(得分:1)
我认为当我将第二种类型的目标节点添加到具有不同标签的混合时,问题就开始了。我已经将清理更改为首先删除所有关系,然后删除每个节点类型。到目前为止,它的工作可靠。