neo4j 通过ID删除节点的Cypher脚本是什么?

velaa5lx  于 6个月前  发布在  其他
关注(0)|答案(6)|浏览(105)

在SQL中:
第一个月
在Cypher中,通过ID删除节点的脚本是什么?
(编辑:ID = Neo4j的内部节点ID)

3phpmpom

3phpmpom1#

(2024年更新!)
假设你指的是Neo4j的内部元素id:

MATCH (p:Person) where elementId(p)=1
DETACH DELETE p

字符串
假设你指的是Neo4j的(遗留)内部ID:

MATCH (p:Person) where ID(p)=1
DETACH DELETE p


如果您在节点上引用自己的属性'id':

MATCH (p:Person {id:1})
 DETACH DELETE p

vd2z7a6w

vd2z7a6w2#

id为“x”的节点的最干净扫描是
MATCH(n)其中id(n)= x
DETACH n
https://neo4j.com/docs/cypher-manual/current/clauses/delete/#delete-delete-a-node-with-all-its-relationships
https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-id

lfapxunr

lfapxunr3#

旧问题和答案,但要删除节点时,它有关系,使用DETACH

MATCH (n) where ID(n)=<your_id> 
DETACH DELETE n

字符串
否则你会得到这个:

Neo.ClientError.Schema.ConstraintValidationFailed: Cannot delete node<21>, because it still has relationships. To delete this node, you must first delete its relationships.


就像SQL的CASCADE一样

kninwzqo

kninwzqo4#

当节点是孤儿时。

Start n=node(1)
Delete n;

字符串

vmjh9lq9

vmjh9lq95#

在@saad-khan提供的链接之后,这里有一个获取节点和关系id的示例。下面的代码显示了id,因此您可以确保删除与给定ID相关的所有内容。
第一个月
Ps.:“:HAS”是关系的一个例子。

6ie5vjzr

6ie5vjzr6#

更新2023:函数id现在不推荐使用,建议使用函数elementId
需要注意的是,elementId返回的id如下所示:
4:360c4f42-4aba-47aa-8d1c-dc543cb0cfba:179
要删除节点,请执行以下操作:

MATCH (n) WHERE elementId(n) = "4:360c4f42-4aba-47aa-8d1c-dc543cb0cfba:179"
DETACH DELETE n;

字符串

相关问题