4

We have selected neo4j as the DB for our web application. The user has a large number of relations and connected nodes. As of now there are about 20 relations for a user. One of the features is a newsfeed feature. If i want to delete a user completely, is the cypher query the best way to delete or is there any other alternative?

Since we are still planning to add new features, the relationships and nodes connected to the user also will increase. So if we use cypher query, the query has to be modified for every new relationship added. Please advise.

Thanks, Pavan

4

3 に答える 3

7

はい、Cypher を使用してユーザーを削除できます。もちろん、Web アプリケーションで使用している言語やフレームワークによっては、別の方法もあります。それについてアドバイスが必要な場合は、Neo4j をどのように使用しているかを詳細に指定してください。

ノードを削除できるようにするには、最初にすべての関係 (送信および受信) を削除する必要があることに注意してください。

例:

START n = node(3)
MATCH n-[r]-()
DELETE n, r

この例は、公式マニュアルから引用したものです: http://docs.neo4j.org/chunked/milestone/query-delete.html

于 2013-03-07T23:43:52.303 に答える
3

Neo4j 2.3 以降、これを行う別の方法があります。

MATCH (n { name:'Andres' })
DETACH DELETE n

この例は、http: //neo4j.com/docs/stable/query-delete.htmlのドキュメントで見つけました。

于 2015-12-13T14:43:51.657 に答える
0

別の方法として、ユーザーから開始してグラフをトラバースし、削除する関係とノードを 2 つのコレクションに入れる gremlin スクリプトを作成することもできます。すべてを削除したい場合は、グレムリンで深さ優先トラバーサルを実装し、トラバース中に削除することができます。

于 2013-03-08T09:32:07.123 に答える