2016-11-27 60 views
3

返回true或false我想用一個數字來比較繞邊的數量和打印truefalse,這樣的事情: g.V().out().count()==0==這裏沒有工作,它總是返回false。 有其他方法嗎?如何小鬼

回答

3

上一次count()步返回的是遍歷,它提供了一個可用於檢索結果的迭代器接口。

如果你的目標是計算所有頂點的所有出邊在圖中,返回單號,並比較,爲0,這將工作:

gremlin> g.V().out().count().next()==0 
==>false 

如果你的目標是做在小鬼語言中比較爲0時,爲()步可以用來測試數量相等:

gremlin> g.V().out().count().is(0) 
==>v[2] 
==>v[3] 
==>v[5] 

如果你要打印的布爾結果:

gremlin> g.V().choose(out().count().is(0), constant(true), constant(false)) 
==>false 
==>true 
==>true 
==>false 
==>true 
==>false 

或者也許返回與每個頂點和它的測試結果的地圖?

gremlin> g.V().as('a').choose(out().count().is(0), constant(true), constant(false)).as('b').select('a','b') 
==>[a:v[1],b:false] 
==>[a:v[2],b:true] 
==>[a:v[3],b:true] 
==>[a:v[4],b:false] 
==>[a:v[5],b:true] 
==>[a:v[6],b:false] 
0

你可以簡單的連鎖.hasNext()Traversal,因爲它是一個迭代器。

從空白開始圖:

gremlin> graph = TinkerGraph.open() 
==>tinkergraph[vertices: 0 edges:0] 
gremlin> g = graph.traversal() 
==>graphtraversalsource[tinkergraph[vertices: 0 edges:0], standard] 
gremlin> g.V().hasNext() 
==>false 

讓我們添加一個頂點

gremlin> g.addV('name', 'Alice') 
==>v[0] 
gremlin> g.V().out().hasNext() 
==>false 
gremlin> g.V().hasNext() 
==>true