删除顶点和顶点本身的所有边

时间:2012-10-12 09:01:47

标签: graph-databases orientdb gremlin

我正在尝试编写一个gremlin表达式,对于给定的顶点,它将删除与之相关的所有边,然后删除顶点本身。

我使用OrientDB 1.3-SNAPSHOT作为我的图形数据库。

这是我到目前为止的表达:

//The #8:1 just refers to a vertex
g.v('#8:1').bothE.each{ g.removeEdge(it) }.back(2)

我期望上面的内容删除边缘,然后返回2,这应该打印出节点#8:1。但是,出于某种原因,我收到了这个错误:

Error: java.lang.NullPointerException

为什么会这样?

最后,我该如何去除顶点?文档显示removeVertex()需要一个参数(它是顶点)。如何将顶点从back(2)传递到removeVertex()

1 个答案:

答案 0 :(得分:0)

如果删除顶点,Gremlin实际上会删除所有边缘。就我而言,我只需要这样做:

g.removeVertex(g.v('#8:1')); g.stopTransaction(SUCCESS);

这将删除顶点和与顶点关联的任何边。要让gremlin提交更改,需要停止转换。

现在,为什么在我的语句的查询中抛出了错误。这是因为each{}是一个grovvy构造,所以我们退出管道。要继续使用管道,请改用sideEffect{}