until
repeat()ステップをdo-whileループまたはwhile-doループに変換します。
構文
until( [ 'predicate' | 'traversal' ])
構文規則 | 説明 |
---|---|
小文字と大文字 | リテラル・キーワード。() を含みます。 |
Italics |
変数値。ユーザー定義値と置き換えます。 |
[] |
任意。角かっこ( [] )で任意のコマンド引数を囲みます。角かっこは入力しないでください。 |
{} |
グループ。中かっこ({} )は、選択肢を含むグループを示します。中かっこは入力しないでください。 |
| |
または。縦棒(| )で代替要素を区切ります。要素のいずれかを入力してください。縦棒は入力しないでください。 |
... |
繰り返し可能。省略記号(... )は、構文要素を必要な回数だけ繰り返すことができることを示します。 |
説明
until()
ステップは、ステップ・モジュレータ(別の探索ステップのヘルパー・ステップ)です。主な用途は、repeat()ステップをdo-whileループ(repeat()ステップの後に使用した場合)またはwhile-doループ(repeat()ステップの前に使用した場合)に変換することです。述語または探索がtrueである場合にのみループを完了させるには、until()
ステップで述語または探索を使用します。
例
単純なパスが使い尽くされるまで、John Doeに隣接するすべての外向きknows頂点の通過を繰り返す例。
g.V().hasLabel('person','name','John Doe').
repeat(out('knows').dedup().
aggregate('x').
by(project('person','level').
by('name').
by(loops())
)
).
until(__.not(out('knows').simplePath())).
cap('x').next()