2012-10-12 304 views
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,應打印出節點#8:1。但是,由於某種原因,我收到此錯誤:

Error: java.lang.NullPointerException 

爲什麼會發生這種情況?

最後,我該如何去除頂點?文檔顯示removeVertex()需要一個參數(這是頂點)。如何將頂點從back(2)傳遞到removeVertex()

回答

0

如果刪除頂點,Gremlin實際上會刪除所有邊緣。在我的情況下,我只需要做:

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

這將刪除頂點和任何與頂點相關的邊。 gremlin需要停止轉換以提交更改。

現在,至於爲什麼我的聲明查詢中引發錯誤。這是因爲each{}是一個混凝土結構,所以我們退出管道。要繼續使用管道,請改用sideEffect{}

相關問題