32

idで頂点を削除する方法は知っていますが、複数の頂点を削除する必要があります(データベースをクリーンアップします)。

1vの削除は次のようになります。

ver = g.v(1)
g.removeVertex(ver)
4

8 に答える 8

55

Gremlin 2.3.0 の最新の用語では、すべての頂点の削除は次の方法で行うのが最適です。

g.V.remove()

更新:バージョン Gremlin 3.x では、drop()を使用します:

gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> g.V().drop().iterate()
gremlin> graph
==>tinkergraph[vertices:0 edges:0]

が自動的に反復しdrop()ないことに注意してください。そのため、削除が発生するように明示的に呼び出す必要があります。Gremlin コンソールでのイテレーションについては、このチュートリアルで詳しく説明しています。Traversalremove()iterate()

また、さまざまなグラフ システムには、そのシステム内のすべてのデータをより迅速かつ効率的に削除するための独自の方法がある可能性があることを考慮してください。たとえば、JanusGraph には次のアプローチがあります。

 JanusGraphFactory.drop(graph)

ここで、「グラフ」はJanusGraphクリアしたいインスタンスです。

于 2013-06-22T12:30:23.280 に答える
30

前に述べたように、Tinkerpop3 (Titan 1.0.0) を使用している場合、コマンドは次のとおりです。

g.V().drop()

なぜこれがうまくいかなかったのか

これは、Gremlin インタラクティブ REPL インターフェイスを使用している場合にのみ機能します。なんで?drop適用するためにトラバースする必要があるイテレータを返し、Gremlin REPL インターフェイスは返されたイテレータを自動的に反復処理します。

どのように修正したか

(私のように) HTTP または WebSocket インターフェイスを Gremlin に使用している場合は、返されたイテレータを明示的に反復処理する必要があります。

g.V().drop().iterate()

忘れてはいけない...

...トランザクションをコミットします。Titan では、トランザクションは暗黙的に開かれますが、明示的に閉じる必要があります。

g.tx().commit()
于 2016-02-15T16:36:30.460 に答える
21

あなたが試すことができます

g.V.each{g.removeVertex(it)}
g.commit()
于 2012-10-10T08:12:25.120 に答える
5

ブループリントには、このための clear() メソッドがありました...

g.clear()

しかし、最近削除されました:

https://github.com/tinkerpop/blueprints/issues/248

于 2012-10-14T04:22:20.283 に答える
5

TinkerPop3 では:

drop()-step (filter/sideEffect) は、要素とプロパティをグラフから削除する (つまり、削除する) ために使用されます。

g.V().drop()
于 2015-12-24T07:46:31.873 に答える
3

TinkerPop3 では、Titan-1.0.0 を使用して、

g.V().drop()
g.tx().commit()   (commit the changes)

私のために働きます。あなたは試してみることができます

于 2016-01-08T05:33:19.710 に答える