【发布时间】:2015-04-27 19:33:27
【问题描述】:
我正在通过 py2neo 模块学习 neo4j。修改example,我很困惑为什么我在这里遇到错误。如果我想删除 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)
这失败并出现错误:
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.
【问题讨论】:
-
您需要先删除关系。在 Neo4j 中就是这样,并且可以防止孤儿关系
-
@ChristopheWillemsen 谢谢,知道这很有用!如果您可以将其作为一个工作示例(删除对之间的所有已知关系),我将能够接受它作为答案。