如何删除neo4j中的多个节点

时间:2014-01-09 13:59:35

标签: neo4j cypher graph-databases

如何在neo4j中删除多个节点(不是全部)?

我有这个查询
MATCH (n)
where n.name IS NULL
delete n

它返回多个节点,我想删除所有这些节点(所有节点,这些节点被错误地创建,这就是为什么变为空)。

我面临的错误是

javax.transaction.HeuristicRollbackException: Failed to commit transaction Transaction(11, owner:"qtp16626756-84")[STATUS_NO_TRANSACTION,Resources=1], transaction rolled back ---> javax.transaction.xa.XAException

案例2:在NOT NULL(属性)的情况下怎么办但在一个或两个节点内没有关联关系;表示一个orhpan类型的节点,与其他节点没有连接。

我尝试使用LIMIT / SKIP但没有工作。有什么帮助吗?

1 个答案:

答案 0 :(得分:12)

您还需要删除与这些节点相关的任何关系,如下所示:

match (n)
where n.name IS NULL
optional match (n)-[r]-()
delete n, r

更新您的第二个案例(这只会删除孤儿):

match (n)
where NOT (n)--()
  and n.name IS NULL
delete n