Module: Mongoid::Finders
- Extended by:
- Origin::Forwardable
- Defined in:
- lib/mongoid/finders.rb
Overview
This module defines the finder methods that hang off the document at the class level.
Instance Method Summary collapse
-
#count ⇒ Integer
Returns a count of records in the database.
-
#empty? ⇒ true, false
Returns true if count is zero.
-
#exists? ⇒ Boolean
Returns true if there are on document in database based on the provided arguments.
-
#find(*args) ⇒ Document, ...
Find a
Document
in several different ways. -
#find_by(attrs = {}) {|result| ... } ⇒ Document
Find the first
Document
given the conditions, or raises Mongoid::Errors::DocumentNotFound. -
#first ⇒ Document
Find the first
Document
given the conditions. -
#last ⇒ Document
Find the last
Document
given the conditions.
Instance Method Details
#count ⇒ Integer
Returns a count of records in the database. If you want to specify conditions use where.
45 46 47 |
# File 'lib/mongoid/finders.rb', line 45 def count with_default_scope.count end |
#empty? ⇒ true, false
Returns true if count is zero
55 56 57 |
# File 'lib/mongoid/finders.rb', line 55 def empty? count == 0 end |
#exists? ⇒ Boolean
Returns true if there are on document in database based on the provided arguments.
66 67 68 |
# File 'lib/mongoid/finders.rb', line 66 def exists? with_default_scope.exists? end |
#find(*args) ⇒ Document, ...
Find a Document
in several different ways.
If a String
is provided, it will be assumed that it is a representation of a Mongo::ObjectID and will attempt to find a single Document
based on that id. If a Symbol
and Hash
is provided then it will attempt to find either a single Document
or multiples based on the conditions provided and the first parameter.
84 85 86 |
# File 'lib/mongoid/finders.rb', line 84 def find(*args) with_default_scope.find(*args) end |
#find_by(attrs = {}) {|result| ... } ⇒ Document
Find the first Document
given the conditions, or raises Mongoid::Errors::DocumentNotFound
101 102 103 104 105 106 107 108 |
# File 'lib/mongoid/finders.rb', line 101 def find_by(attrs = {}) result = where(attrs).first if result.nil? && Mongoid.raise_not_found_error raise(Errors::DocumentNotFound.new(self, attrs)) end yield(result) if result && block_given? result end |
#first ⇒ Document
Find the first Document
given the conditions.
116 117 118 |
# File 'lib/mongoid/finders.rb', line 116 def first with_default_scope.first end |
#last ⇒ Document
Find the last Document
given the conditions.
126 127 128 |
# File 'lib/mongoid/finders.rb', line 126 def last with_default_scope.last end |