Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
74 lines (53 sloc) 2.24 KB
layout language permalink command related_commands
api-command
Ruby
api/ruby/min/
min
map reduce count sum avg max group
map/
reduce/
count/
sum/
avg/
max/
group/

Command syntax

{% apibody %} sequence.min(field | function) → element sequence.min({:index => }) → element r.min(sequence, field | function) → element r.min(sequence, {:index => }) → element {% endapibody %}

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;
  • an index (the primary key or a secondary index), to return the element of the sequence with the smallest value in that index;
  • 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.

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([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({: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['points'] + user['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')['points'].run(conn)

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

r.table('users').min('points').default(nil).run(conn)
You can’t perform that action at this time.