0

我正在尝试编写一个 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,这应该打印出 node #8:1。但是,由于某种原因,我收到此错误:

Error: java.lang.NullPointerException

为什么会这样?

最后,我该如何移除顶点?文档表明这removeVertex()需要一个参数(即顶点)。如何将顶点从back(2)into传递removeVertex()

4

1 回答 1

0

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

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

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

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

于 2012-10-14T08:14:29.027 回答