TitanDB:避免搜索两次以查找节点是否存在

时间:2015-11-08 01:31:16

标签: titan gremlin tinkerpop3

我试图在创建新顶点或更新现有顶点之前检查顶点是否存在:

 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个搜索name = xyz的元素;我想先将搜索保存到变量中,稍后再参考。

但是,如果我尝试保存搜索,则不会保存:

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

在此示例中避免进行两次搜索的方法是什么? - 谢谢!!!

2 个答案:

答案 0 :(得分:2)

也许你错过了tryNext

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

答案 1 :(得分:0)

找到我自己的答案:collect()

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

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

 else { // add vertex
   }