Back to top

ReQL command: next

Command syntax

cursor.next([true])

Description

Get the next element in the cursor.

The optional unnamed argument specifies whether to wait for the next available element and how long to wait:

  • true: Wait indefinitely (the default).
  • false: Do not wait at all. If data is immediately available, it will be returned; if it is not available, a Timeout::Error will be raised.
  • number: Wait up to the specified number of seconds for data to be available before raising Timeout::Error.

The behavior of next will be identical with false, nil or the number 0.

Calling next the first time on a cursor provides the first element of the cursor. If the data set is exhausted (e.g., you have retrieved all the documents in a table), a StopIteration error will be raised when next is called.

Example: Retrieve the next element.

cursor = r.table('superheroes').run(conn)
doc = cursor.next()

Example: Retrieve the next element on a changefeed, waiting up to five seconds.

cursor = r.table('superheroes').changes().run(conn)
doc = cursor.next(5)

Note: RethinkDB sequences can be iterated through via the Ruby Enumerable interface. The canonical way to retrieve all the results is to use an each command or to_a().

Get more help

Couldn't find what you were looking for?