CipherStash
CipherStash Documentation

Ordering Query Results

If you wish to sort the records that match a query’s constraints, you can specify ordering criteria by calling #order_by on the query match object. Records can be sorted on any range index defined on the collection.

As an example, to get movies sorted oldest to newest:

movies.query do |movie|
  movie.order_by("year", :ASC)
end

As you can see, #order_by takes two arguments, the name of an index, and the ordering direction: :ASC for “smallest values first”, and :DESC for “largest values first”.

You can apply multiple ordering criteria on a single query, by calling #order_by multiple times:

movies.query do |movie|
  movie.order_by("year", :ASC)
  movie.order_by("runningTime", :DESC)
end

The above example will put older movies first, and then within a given year, the longest movies made that year will come before shorter movies of that same year.