repeat

Loop until a condition is met.

Synopsis

repeat(traversal)
Table 1. Legend
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 repeat() step is a branch step and is used for looping over a traversal to some given break predicate. Three step modulators can be used with the repeat() step, emit(), times(), or until().

Examples

Repeatedly gets the outgoing vertex, three times, and prints the results:
g.V().hasLabel('fridgeSensor').repeat(out()).times(3).valueMap()
A more complex example that repeats through all the outgoing knows adjacent vertices of John Doe:
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()