2015-11-08 67 views
0

我想檢查是否頂點創建一個新的或更新現有的人之前存在:TitanDB:避免搜索兩次,以查找是否存在節點

x = g.V().has('name','xyz').hasNext() // /search 1 

if (x != true){ 
    g.V().addVertex('name', 'xyz') } 

g.V().has('name','xyz').property('x','1') // search 2 

的例子有2個搜索具有名稱= XYZ元素;我想將第一次搜索保存到一個變量中,稍後再引用它。

但是,如果我嘗試保存搜索,它不會得到保存:

gremlin> x = g.V().has('name','xyz') 
==>v[40964336] 
gremlin> x 
gremlin> 

什麼是爲了避免在這個例子中有兩個搜索的方式嗎? - 謝謝!!!

回答

0

找到我自己的答案:收集()

x= g.V().has('name','axdas').collect() 

if (x.size() > 0) { //set property 
    } 

else { // add vertex 
    } 
+0

我想你要找的是'X = GV()有( '名' ,'axdas')。next()' –

2

也許你錯過了tryNext

g.V().has('name','xyz').tryNext().orElseGet { 
    graph.addVertex('name', 'xyz') 
}.property('x', '1') 
相關問題