Back to top

ReQL command: min

Command syntax

sequence.min([field | function]) → element

r.min(sequence, [field | function]) → element

Description

Finds the minimum element of a sequence.

The min command can be called with:

  • a field name, to return the element of the sequence with the smallest value in that field;
  • a function, to apply the function to every element within the sequence and return the element which returns the smallest value from the function, ignoring any elements where the function produces a non-existence error;
  • an index (the primary key or a secondary index) via optArg, to return the element of the sequence with the smallest value in that index.

For more information on RethinkDB’s sorting order, read the section in ReQL data types.

Calling min on an empty sequence will throw a non-existence error; this can be handled using the default_ command.

Example: Return the minimum value in the list [3, 5, 7].

r.expr(r.array(3, 5, 7)).min().run(conn);

Example: Return the user who has scored the fewest points.

r.table("users").min("points").run(conn);

Example: The same as above, but using a secondary index on the points field.

r.table("users").min().optArg("index", "points").run(conn);

Example: Return the user who has scored the fewest points, adding in bonus points from a separate field using a function.

r.table("users").min(
    user -> user.g("points").add(user.g("bonus_points"))
).run(conn);

Example: Return the smallest number of points any user has ever scored. This returns the value of that points field, not a document.

r.table("users").min("points").g("points").run(conn);

Example: Return the user who has scored the fewest points, but add a default None return value to prevent an error if no user has ever scored points.

r.table("users").min("points").default_(null).run(conn);

Get more help

Couldn't find what you were looking for?