我知道如何在Gremlin中通过id移除顶点。但现在我需要清理数据库。如何删除多个顶点?删除1v是这样的:
ver = g.v(1) g.removeVertex(ver)
例如SQL TRUNCATE。如何在不删除类的情况下删除顶点/顶点?
TRUNCATE
wz3gfoph1#
在最近的版本中,Gremlin 2。3.0,删除所有顶点的最佳方法是:
g.V.remove()
**更新:**适用于Gremlin 3版本。你可以使用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()不会像remove()那样自动迭代Traversal,因此您必须显式调用iterate()才能进行删除。本教程将详细讨论Gremlin控制台中的迭代。此外,考虑到不同的图形系统将潜在地具有它们自己的方法,用于更快速和有效地移除该系统中的所有数据。例如,JanusGraph有这样的方法:
drop()
remove()
Traversal
iterate()
JanusGraphFactory.drop(graph)
其中“graph”是一个要清除的JanusGraph示例。
JanusGraph
dzjeubhm2#
如果你正在使用Tinkerpop 3(Titan 1.0.0),如前所述,命令是:
g.V().drop()
只有当你使用Gremlin交互式REPL接口时,这才有效。为什么?drop返回一个迭代器,必须遍历它才能应用**,**Gremlin REPL接口会自动迭代返回的迭代器。
drop
如果(像我一样)你正在使用Gremlin的HTTP或WebSocket接口,你必须显式地迭代返回的迭代器:
g.V().drop().iterate()
...提交事务。在Titan中,交易是隐式打开的,但必须显式关闭:
g.tx().commit()
p3rjfoxz3#
你可以试试
g.V.each{g.removeVertex(it)} g.commit()
vatpfxk54#
在TinkerPop 3中:drop()-步骤(filter/sideEffect)用于从图中移除元素和属性(即,即去除)。
tyky79it5#
你可以按如下方式来做;
graph.shutdown(); TitanCleanup.clear(graph);
piv4azn76#
蓝图曾经有一个clear()方法来实现这一点。..g.clear()但最近被删除了:https://github.com/tinkerpop/blueprints/issues/248
g.clear()
1yjd4xko7#
TinkerPop3,Titan-1。0.0,
g.V().drop() g.tx().commit() (commit the changes)
对我来说没问题你可以给予
umuewwlo8#
public class JanusGraphCleanup { @Deprecated public static void clear(JanusGraph graph) throws BackendException { JanusGraphFactory.drop(graph); } }
参考:https://github.com/JanusGraph/janusgraph/blob/master/janusgraph-core/src/main/java/org/janusgraph/core/util/JanusGraphCleanup.java
8条答案
按热度按时间wz3gfoph1#
在最近的版本中,Gremlin 2。3.0,删除所有顶点的最佳方法是:
**更新:**适用于Gremlin 3版本。你可以使用drop():
请注意,
drop()
不会像remove()
那样自动迭代Traversal
,因此您必须显式调用iterate()
才能进行删除。本教程将详细讨论Gremlin控制台中的迭代。此外,考虑到不同的图形系统将潜在地具有它们自己的方法,用于更快速和有效地移除该系统中的所有数据。例如,JanusGraph有这样的方法:
其中“graph”是一个要清除的
JanusGraph
示例。dzjeubhm2#
如果你正在使用Tinkerpop 3(Titan 1.0.0),如前所述,命令是:
为什么这对我不起作用
只有当你使用Gremlin交互式REPL接口时,这才有效。为什么?
drop
返回一个迭代器,必须遍历它才能应用**,**Gremlin REPL接口会自动迭代返回的迭代器。我是如何修复的
如果(像我一样)你正在使用Gremlin的HTTP或WebSocket接口,你必须显式地迭代返回的迭代器:
别忘了。..
...提交事务。在Titan中,交易是隐式打开的,但必须显式关闭:
p3rjfoxz3#
你可以试试
vatpfxk54#
在TinkerPop 3中:
drop()-步骤(filter/sideEffect)用于从图中移除元素和属性(即,即去除)。
tyky79it5#
你可以按如下方式来做;
piv4azn76#
蓝图曾经有一个clear()方法来实现这一点。..
g.clear()
但最近被删除了:
https://github.com/tinkerpop/blueprints/issues/248
1yjd4xko7#
TinkerPop3,Titan-1。0.0,
对我来说没问题你可以给予
umuewwlo8#
参考:https://github.com/JanusGraph/janusgraph/blob/master/janusgraph-core/src/main/java/org/janusgraph/core/util/JanusGraphCleanup.java