モジュール: Mongoid::Findable
- 次による拡張機能。
- 転送可能
- 定義:
- lib/mongoid/findable.rb
Overview
このモジュールは、クラス レベルでドキュメントをハングする検索メソッドを定義します。
インスタンス メソッドの概要を折りたたむ
-
#空= true | false
カウントがゼロの場合は true を返します。
-
#estimate_count = 整数
データベース内のレコードの推定数を返します。
-
が存在する場合(id_or_条件 = :none) = true | false
指定された引数に基づいて、データベースにドキュメントがある場合は true を返します。
-
#find (*args、 & ブロック) = ドキュメント | Array[Document]|<Document> nil
_id 値で
Document
または複数のドキュメントを検索します。 -
# find_by (atlas = {}){{|result| ... } = ドキュメント | nil
条件に従って最初の
Document
を見つけます。 -
# find_by (atlas = {}){{|result| ... } = ドキュメント
条件に従って最初の
Document
を検索します。または、Mongoid::Errors::DocumentNotFound が発生します。 -
最初の#(limit = nil)= ドキュメント(これも: 1 つ)
条件に従って最初の
Document
を見つけます。 -
#last(limit = nil) ⇒ Document
条件付きで最後の
Document
を見つけます。
インスタンス メソッドの詳細
#空= true | false
カウントがゼロの場合は true を返します
95 96 97 |
# ファイル 'lib/mongoid/findable.rb', 行95 デフォルト 空の場合 count == 0 end |
#estimate_count = 整数
データベース内のレコードの推定数を返します。
85 86 87 |
# ファイル 'lib/mongoid/findable.rb', 行85 デフォルト Estimated_count with_default_scope.Estimated_count end |
が存在する場合(id_or_条件 = :none) = true | false
指定された引数に基づいて、データベースにドキュメントがある場合は true を返します。
116 117 118 |
# ファイル 'lib/mongoid/findable.rb', 行116 デフォルト 存在するかどうか(id_or_条件 = :none) with_default_scope.存在するかどうか(id_or_条件) end |
#find(*args, &block) ⇒ Document | Array<Document> | nil
各引数は、個々の ID、ID の配列、またはネストされた配列にすることができます。 各配列はフラット化されます。
_id 値でDocument
または複数のドキュメントを検索します。
単一の配列以外の引数が指定されている場合、この引数は検索対象のドキュメントの _id 値として解釈されます。 データベース内に一致するドキュメントがある場合は、このドキュメントが返されます。もしくは、 raise_not_found_error
Mongoid 構成オプションが真実(デフォルト)の場合はErrors::DocumentNotFound
が発生し、 raise_not_found_error
が false の場合、 find
はnil
を返します。
複数の引数が指定されている場合、または配列引数が指定されている場合、配列はフラット化され、各配列要素は検索対象のドキュメントの _id 値として解釈されます。 次に、Mongoid は指定された _id 値を持つすべてのドキュメントの検索を試みます。 戻り値は、見つかったドキュメントの配列です。 各ドキュメントは返される配列に 1 回表示されます。ただし、その _id がfind
への引数で複数回指定されている場合でも、 raise_not_found_error
Mongoid 構成オプションが真実の場合、指定された _id のいずれかがデータベース内で見つからなかった場合は、 Errors::DocumentNotFound
例外が発生します。 raise_not_found_error
Mongoid 構成オプションが false の場合、見つかったドキュメントのみが返されます。ドキュメントが見つからない場合、戻り値は空の配列になります。
MongoDB では、_id フィールドは配列になることはできないことに注意してください。
引数は、 _id フィールドに宣言された型に基づいて、カスタムの Mongoid 型変換を行います。 デフォルトでは、_id フィールドはBSON::ObjectId
です。これにより、クエリの構築時に string がfind
に渡され、string はBSON::ObjectId
インスタンスに透過的に変換されます。
このメソッドにブロックが与えられている場合、それはEnumerable#findに委任し、ブロックが真実の値を返す現在の Criteria オブジェクトによって見つかったドキュメントのうちの最初のドキュメントを返します。 ブロックと ID の両方が指定されている場合、ブロックは無視され、指定された ID のドキュメントが返されます。 ブロックと Proc が指定された場合、メソッドはEnumerable#findに委任し、デフォルトとしてプロシージャを使用します。
find
メソッドは、モデル クラスに定義されているデフォルトのスコープを考慮します(存在する場合)。
169 170 171 172 173 174 175 176 |
# ファイル 'lib/mongoid/findable.rb', 行169 デフォルト find(*args, &ブロック) empty_or_proc = args.空の場合 || (args.Length == 1 & & args.最初に.is_a?(Proc)) 場合 ブロック_指定 & & empty_or_proc with_default_scope.find(*args, &ブロック) else with_default_scope.find(*args) end end |
# find_by (atlas = {}){{|result| ... } =ドキュメント| nil
条件に従って最初のDocument
を見つけます。 一致するドキュメントが見つからず、Mongoid. Ops Manager が true に設定されている場合には、Mongoid::Errors::DocumentNotFound が発生します。それ以外の場合は、null を返します。
および Mongoid. resume_not_find_error は true です。
192 193 194 195 196 197 198 199 |
# ファイル 'lib/mongoid/findable.rb', 行192 デフォルト find_by(attrs = {}) 結果 = WHERE(attrs).find_first 場合 結果.nil? & & Mongoid.resume_not_find_error 発生(Errors::DocumentNotFound.新着情報(自己, attrs)) end ノードの数(結果) 場合 結果 & & ブロック_指定 結果 end |
# find_by (atlas = {}){{|result| ... } =ドキュメント
条件付きで最初のDocument
を見つけます。または Mongoid::Errors::DocumentNotFound が発生します
212 213 214 215 216 217 |
# ファイル 'lib/mongoid/findable.rb', 行212 デフォルト find_by.(attrs = {}) 結果 = WHERE(attrs).find_first 発生(Errors::DocumentNotFound.新着情報(自己, attrs)) ただし、 結果 ノードの数(結果) 場合 結果 & & ブロック_指定 結果 end |
最初に#を指定する (limit = nil) =ドキュメントまたは1 つの
条件に従って最初のDocument
を見つけます。
227 228 229 |
# ファイル 'lib/mongoid/findable.rb', 行227 デフォルト 最初に(limit = nil) with_default_scope.最初に(limit) end |
#last(limit = nil) ⇒ Document
条件付きで最後のDocument
を見つけます。
240 241 242 |
# ファイル 'lib/mongoid/findable.rb', 行240 デフォルト last(limit = nil) with_default_scope.last(limit) end |