如何使用Neo4j cypher查询删除节点及其连接的节点?

如何使用Neo4j cypher查询删除节点及其连接的节点?,neo4j,cypher,graph-databases,Neo4j,Cypher,Graph Databases,例如,我想删除id=“005A”的Actor节点及其连接的Movie节点。演员和电影节点之间的关系是中的ACTED\u 我尝试过这个密码查询: MATCH (a:Actor {id: "005A"}) OPTIONAL MATCH (a)-[r:ACTED_IN]->(m) DELETE a, r, m; 但它不起作用,我得到了TransactionFailureException:无法提交事务错误 谁能给出一个解决方案 更新: 我发现从另一个节点(机构)到标记为拥有的参与者节点之间存在

例如,我想删除id=“005A”的
Actor
节点及其连接的
Movie
节点。演员和电影节点之间的关系是中的
ACTED\u

我尝试过这个密码查询:

MATCH (a:Actor {id: "005A"})
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
DELETE a, r, m;
但它不起作用,我得到了
TransactionFailureException:无法提交事务
错误

谁能给出一个解决方案

更新:

我发现从另一个节点(
机构
)到标记为
拥有
参与者
节点之间存在关系。所以图是这样的:

(aa:Agency)-[o:OWNED]->(a:Actor)

您确定该id已编码为字符串属性吗?我猜电影数据库的id是一个整数,因此该id不应该用引号括起来:

MATCH (a:Actor {id: 5})
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
DELETE a, r, m;

您确定该id已编码为字符串属性吗?我猜电影数据库的id是一个整数,因此该id不应该用引号括起来:

MATCH (a:Actor {id: 5})
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
DELETE a, r, m;

您确定该id已编码为字符串属性吗?我猜电影数据库的id是一个整数,因此该id不应该用引号括起来:

MATCH (a:Actor {id: 5})
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
DELETE a, r, m;

您确定该id已编码为字符串属性吗?我猜电影数据库的id是一个整数,因此该id不应该用引号括起来:

MATCH (a:Actor {id: 5})
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
DELETE a, r, m;
[已编辑]

除非节点的所有关系都已删除,否则无法删除节点。在您的情况下,
a
和/或
m
节点可能具有
r
以外的关系

要获取与
a
m
关联的关系类型集,可以使用以下命令(我将结果限制为10行,以防
a
和/或
m
有很多关系`):

我怀疑您的结果将在
中显示除之外的类型

以下查询应删除演员及其演过的所有电影:

MATCH (a:Actor {id: "005A"})
OPTIONAL MATCH ()-[rx]-(a)
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
OPTIONAL MATCH (m)-[ry]-()
DELETE rx, ry, r, a, m;
[已编辑]

除非节点的所有关系都已删除,否则无法删除节点。在您的情况下,
a
和/或
m
节点可能具有
r
以外的关系

要获取与
a
m
关联的关系类型集,可以使用以下命令(我将结果限制为10行,以防
a
和/或
m
有很多关系`):

我怀疑您的结果将在中显示除之外的类型

以下查询应删除演员及其演过的所有电影:

MATCH (a:Actor {id: "005A"})
OPTIONAL MATCH ()-[rx]-(a)
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
OPTIONAL MATCH (m)-[ry]-()
DELETE rx, ry, r, a, m;
[已编辑]

除非节点的所有关系都已删除,否则无法删除节点。在您的情况下,
a
和/或
m
节点可能具有
r
以外的关系

要获取与
a
m
关联的关系类型集,可以使用以下命令(我将结果限制为10行,以防
a
和/或
m
有很多关系`):

我怀疑您的结果将在中显示除之外的类型

以下查询应删除演员及其演过的所有电影:

MATCH (a:Actor {id: "005A"})
OPTIONAL MATCH ()-[rx]-(a)
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
OPTIONAL MATCH (m)-[ry]-()
DELETE rx, ry, r, a, m;
[已编辑]

除非节点的所有关系都已删除,否则无法删除节点。在您的情况下,
a
和/或
m
节点可能具有
r
以外的关系

要获取与
a
m
关联的关系类型集,可以使用以下命令(我将结果限制为10行,以防
a
和/或
m
有很多关系`):

我怀疑您的结果将在中显示除之外的类型

以下查询应删除演员及其演过的所有电影:

MATCH (a:Actor {id: "005A"})
OPTIONAL MATCH ()-[rx]-(a)
OPTIONAL MATCH (a)-[r:ACTED_IN]->(m)
OPTIONAL MATCH (m)-[ry]-()
DELETE rx, ry, r, a, m;


不,它实际上是字符串,值是唯一的。为了防止将来有人这样想,我将稍微更改一下示例。不,它实际上是字符串,并且值是唯一的。为了防止将来有人这样想,我将稍微更改一下示例。不,它实际上是字符串,并且值是唯一的。为了防止将来有人这样想,我将稍微更改一下示例。不,它实际上是字符串,并且值是唯一的。为了防止将来有人这样想,我将稍微更改一下示例,返回空行。在您的查询中,
r
m
返回,接下来的两个收集返回的空列表(
[]
)您说过必须删除所有关系,如果
参与者
节点与其他节点有关系怎么办?例如:
(aa:Agency)-[:OWNED]->(a:Actor)
。我是否也应该删除
拥有的
关系?是。我已经更新了我的查询——在这种情况下,它不应该返回
COLLECT(DISTINCT-TYPE(rx))的结果。我还需要删除
OWNED
关系。我将编辑我的问题,让大家有机会回答我的问题:)我运行
MATCH(m:Movie)-[r]->()返回r
,返回空行。在您的查询中,
r
m
返回,接下来的两个收集返回的空列表(
[]
)您说过必须删除所有关系,如果
参与者
节点与其他节点有关系怎么办?例如:
(aa:Agency)-[:OWNED]->(a:Actor)
。我是否也应该删除
拥有的
关系?是。我已经更新了我的查询——在这种情况下,它不应该返回
COLLECT(DISTINCT-TYPE(rx))的结果。我还需要删除
OWNED
关系。我将编辑我的问题,让大家有机会回答我的问题:)我运行
MATCH(m:Movie)-[r]->()返回r
,返回空行。在您的查询中,
r
m
返回,接下来的两个收集返回的空列表(
[]