2016-12-24 18 views
1

マイtraversal同じラベルの別のエッジが存在しない場合にのみ、2つのラベル付き頂点の間にエッジを追加しますか?

g.V(id1).as("entity") 
.V(id2).as("type1") 
.addE("hasType").from("entity").to("type1"); 

私は同じedgeLabelの別のエッジがすでに同じ頂点の間に存在しない場合にのみ、このエッジを追加しますので、それを変更したいと思います。

ありがとうございました!

答えて

1

これは、処理する前に "entity1"( "type1"の観点から)から入ってくるエッジがあるかどうかを調べるwhereステップを使用します。

g.V(id1).as("entity"). 
    V(id2).as("type1"). 
    not(__.in("hasType").where(eq("entity"))). 
    addE("hasType").from("entity").to("type1") 
+0

ありがとう!私はそれが '' not() '' 'を必要としていると思いますか?また私は '' 'どこで()' ''私の他の質問http://stackoverflow.com/q/41314091/986160の場合のステップを使用することができますか? –

+0

私はあなたのクエリをそのまま試してみましたが、エッジを追加することはありません。私は '' 'どこで(neq(" entity ")))' ''を試して、常にエッジを追加していました。間違っています:( –

+1

ここで(eq( "entity"))) ')' not(__。in( "hasType")) ) 'とそれが期待どおりに動作するはずです –