2016-11-27 4 views
3

にtrueまたはfalseを返すためにはどうすれば数と周りのエッジの数を比較すると、このようなtrueまたはfalse、何かを印刷したいです。 別の方法がありますか?はグレムリン

答えて

3

最後のcount()ステップによって返されるものは、結果を取得するために使用できるイテレータインターフェイスを提供するトラバーサルです。あなたの目標は、グラフ内のすべての頂点のすべてのアウトエッジをカウントその単一の番号を返し、0にそれを比較することである場合

、これは動作します:

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

をあなたの目標が何をしている場合

gremlin> g.V().choose(out().count().is(0), constant(true), constant(false)) 
==>false 
==>true 
==>true 
==>false 
==>true 
==>false 
:あなたはブール結果を印刷したい場合は

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

:IS()ステップは、平等のために数をテストするために使用することができグレムリン言語、内の0との比較

または、各頂点とそのテスト結果でマップを返すことはできますか?

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

それはイテレータですので、あなたは、単に、あなたTraversal.hasNext()をチェーンすることができます。空白のグラフからスタート

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 
関連する問題