无法使用py2neo删除具有关系的neo4j节点

Hoo*_*ked 2 python neo4j py2neo

我正在通过 py2neo 模块学习 Neo4j。修改示例,我很困惑为什么我在这里收到错误。如果我想删除该Person类型的所有节点,为什么我不能遍历图形并删除符合我的条件的节点?如果删除节点之间的关系,则代码运行良好。

from py2neo import Node, Relationship, Graph

g = Graph("http://neo4j:test@localhost:7474/db/data/")
g.delete_all()

alice = Node("Person", name="Alice")
bob   = Node("Person", name="Bob")
g.create(Relationship(alice, "KNOWS", bob)) # Works if this is not present

for x in g.find("Person"):
    print x
    g.delete(x)
Run Code Online (Sandbox Code Playgroud)

这失败并出现错误:

  File "start.py", line 12, in <module>
    g.delete(x)
  ...
py2neo.error.TransactionFailureException: Transaction was marked as successful, but unable to commit transaction so rolled back.
Run Code Online (Sandbox Code Playgroud)

小智 5

根据文档,这应该作为一个简单的 CYPER 查询工作:

当您要删除一个节点以及任何进出它的关系时,请使用 DETACH DELETE。

MATCH (n:Person)
DETACH DELETE n
Run Code Online (Sandbox Code Playgroud)

http://neo4j.com/docs/stable/query-delete.html#delete-delete-a-node-with-all-its-relationships