until
Turn a repeat() step into a do-while or while-do loop.
Synopsis
until( [ 'predicate' | 'traversal' ])
Syntax conventions | Description |
---|---|
Lowercase and uppercase | Literal keyword. Includes () . |
Italics |
Variable value. Replace with a user-defined value. |
[] |
Optional. Square brackets ( [] ) surround
optional command arguments. Do not type the square brackets. |
{} |
Group. Braces ( {} ) identify a group to choose
from. Do not type the braces. |
| |
Or. A vertical bar ( | ) separates alternative
elements. Type any one of the elements. Do not type the vertical
bar. |
... |
Repeatable. An ellipsis ( ... ) indicates that
you can repeat the syntax element as often as required. |
Description
The until()
step is a step
modulator, a helper step for another traversal step. Its main use is to turn a
repeat() step into a do-while loop (if used after the
repeat() step) or a while-do loop (if used before the repeat() step). A predicate or traversal can be used in an
until()
step to cause the loop to complete only if the predicate or
traversal is true.
Examples
An example that repeats through all the outgoing knows adjacent vertices of John
Doe until the simple paths are
exhausted:
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()