Module: Mongoid::Finders
- 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
-
#all(*args) ⇒ Object
Find
Documents
given the conditions. -
#count(*args) ⇒ Object
Returns a count of matching records in the database based on the provided arguments.
-
#exists?(*args) ⇒ Boolean
Returns true if there are on document in database based on the provided arguments.
-
#find(*args) ⇒ Object
Find a
Document
in several different ways. -
#find_or_create_by(attrs = {}, &block) ⇒ Object
Find the first
Document
given the conditions, or creates a new document with the conditions that were supplied. -
#find_or_initialize_by(attrs = {}, &block) ⇒ Object
Find the first
Document
given the conditions, or instantiates a new document with the conditions that were supplied. -
#first(*args) ⇒ Object
Find the first
Document
given the conditions. -
#last(*args) ⇒ Object
Find the last
Document
given the conditions. -
#paginate(params = {}) ⇒ Object
Find all documents in paginated fashion given the supplied arguments.
Instance Method Details
#all(*args) ⇒ Object
Find Documents
given the conditions.
Options:
args: A Hash
with a conditions key and other options
Person.all(:conditions => { :attribute => "value" })
25 26 27 |
# File 'lib/mongoid/finders.rb', line 25 def all(*args) find(:all, *args) end |
#count(*args) ⇒ Object
Returns a count of matching records in the database based on the provided arguments.
Person.count(:conditions => { :attribute => "value" })
33 34 35 |
# File 'lib/mongoid/finders.rb', line 33 def count(*args) find(:all, *args).count end |
#exists?(*args) ⇒ Boolean
Returns true if there are on document in database based on the provided arguments.
Person.exists?(:conditions => { :attribute => "value" })
41 42 43 |
# File 'lib/mongoid/finders.rb', line 41 def exists?(*args) find(:all, *args).limit(1).count == 1 end |
#find(*args) ⇒ Object
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.
Example:
Person.find(:first, :conditions => { :attribute => "value" })
Person.find(:all, :conditions => { :attribute => "value" })
Person.find(BSON::ObjectId)
Options:
args: An assortment of finder options.
Returns:
A document or criteria.
66 67 68 |
# File 'lib/mongoid/finders.rb', line 66 def find(*args) criteria.find(*args) end |
#find_or_create_by(attrs = {}, &block) ⇒ Object
Find the first Document
given the conditions, or creates a new document with the conditions that were supplied
Options:
args: A Hash
of attributes
Person.find_or_create_by(:attribute => "value")
78 79 80 |
# File 'lib/mongoid/finders.rb', line 78 def find_or_create_by(attrs = {}, &block) find_or(:create, attrs, &block) end |
#find_or_initialize_by(attrs = {}, &block) ⇒ Object
Find the first Document
given the conditions, or instantiates a new document with the conditions that were supplied
Options:
args: A Hash
of attributes
Person.find_or_initialize_by(:attribute => "value")
90 91 92 |
# File 'lib/mongoid/finders.rb', line 90 def find_or_initialize_by(attrs = {}, &block) find_or(:new, attrs, &block) end |
#first(*args) ⇒ Object
Find the first Document
given the conditions.
Options:
args: A Hash
with a conditions key and other options
Person.first(:conditions => { :attribute => "value" })
101 102 103 |
# File 'lib/mongoid/finders.rb', line 101 def first(*args) find(:first, *args) end |
#last(*args) ⇒ Object
Find the last Document
given the conditions.
Options:
args: A Hash
with a conditions key and other options
Person.last(:conditions => { :attribute => "value" })
112 113 114 |
# File 'lib/mongoid/finders.rb', line 112 def last(*args) find(:last, *args) end |
#paginate(params = {}) ⇒ Object
Find all documents in paginated fashion given the supplied arguments. If no parameters are passed just default to offset 0 and limit 20.
Options:
params: A Hash
of params to pass to the Criteria API.
Example:
Person.paginate(:conditions => { :field => "Test" }, :page => 1, :per_page => 20)
Returns paginated array of docs.
129 130 131 |
# File 'lib/mongoid/finders.rb', line 129 def paginate(params = {}) find(:all, params).paginate end |