web-dev-qa-db-ja.com

IDでノードを削除するCypherスクリプトとは何ですか?

SQLの場合:

Delete From Person Where ID = 1;

Cypherでは、IDでノードを削除するスクリプトは何ですか?

(編集:ID = Neo4jの内部Node ID)

24
Rm558

Neo4jの内部ノードIDを参照していると仮定すると:

MATCH (p:Person) where ID(p)=1
OPTIONAL MATCH (p)-[r]-() //drops p's relations
DELETE r,p

ノード上の独自のプロパティ「id」を参照している場合:

 MATCH (p:Person {id:1})
 OPTIONAL MATCH (p)-[r]-() //drops p's relations
 DELETE r,p
41
Luanne

ID「xx」のノードの最もクリーンなスイープは

MATCH(n)where id(n)= xx DETACH DELETE n

https://neo4j.com/docs/developer-manual/current/cypher/#delete-delete-all-nodes-and-relationships

19
Saad Khan

ノードが孤立している場合。

Start n=node(1)
Delete n;
2
Rm558

古い質問と回答ですが、関係があるときにノードを削除するには、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のようなものです

1
O95

@ saad-khanが提供するリンクに従って、ノードと関係IDを取得する例を示します。以下のコードはIDを示しているため、指定されたIDに関連するすべてを削除していることを確認できます。

MATCH (node)-[relation:HAS]->(value) where ID(node)=1234 RETURN ID(instance), ID(value), ID(r)

追伸:「:HAS」は関係の例です。

0
arturvt