Module: MongoidExt::Random::ClassMethods

Defined in:
lib/mongoid_ext/random.rb

Instance Method Summary collapse

Instance Method Details

#random(conditions = {}) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/mongoid_ext/random.rb', line 14

def random(conditions = {})
  r = rand()
  doc = self.where(conditions.merge(:_random.gte => r)).order_by(:_random_times.asc, :_random.asc).first ||
        self.where(conditions.merge(:_random.lte => r)).order_by(:_random_times.asc, :_random.asc).first
  doc.inc(:_random_times, 1.0) if doc
  doc
end