モジュール: Mongoid::Findable
- 次による拡張機能。
- 転送可能
- 定義:
- lib/mongoid/findable.rb
Overview
このモジュールは、クラス レベルでドキュメントをハングする検索メソッドを定義します。
インスタンス メソッドの概要を折りたたむ
-
# 任意= true | false
条件内に document が存在する場合は true を返します。
-
#count ⇒ Integer
データベース内のレコードのカウントを返します。
-
#空= 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
条件内に複数のdocumentが存在する場合は true を返します。
-
# 1 = true | false
条件内に 1 つの document のみが存在する場合は true を返します。
インスタンス メソッドの詳細
# 任意? ⇒ true | false
条件内に document が存在する場合は true を返します。
124 125 126 |
# ファイル 'lib/mongoid/findable.rb', 行124 デフォルト any? limit(1).count > 0 end |
#count ⇒ Integer
データベース内のレコードのカウントを返します。 条件を指定する場合は、 を使用します。
73 74 75 |
# ファイル 'lib/mongoid/findable.rb', 行73 デフォルト count with_default_scope.count end |
#空= true | false
カウントがゼロの場合は true を返します
93 94 95 |
# ファイル 'lib/mongoid/findable.rb', 行93 デフォルト 空の場合 count == 0 end |
#estimate_count = 整数
データベース内のレコードの推定数を返します。
83 84 85 |
# ファイル 'lib/mongoid/findable.rb', 行83 デフォルト Estimated_count with_default_scope.Estimated_count end |
が存在する場合(id_or_条件 = :none) = true | false
指定された引数に基づいて、データベースにドキュメントがある場合は true を返します。
114 115 116 |
# ファイル 'lib/mongoid/findable.rb', 行114 デフォルト 存在するかどうか(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 に委任し、ブロックが true 値を返す現在の Criteriaオブジェクトによって見つかったdocumentのうちの最初のdocumentを返します。ブロックと ID の両方が指定されている場合、ブロックは無視され、指定された ID の document が返されます。ブロックと Proc が指定されている場合、メソッドは Enumerable#find に委任し、プロシージャをデフォルトの として使用します。
findメソッドは、モデル クラスに定義されているデフォルトのスコープを考慮します(存在する場合)。
197 198 199 200 201 202 203 204 |
# ファイル 'lib/mongoid/findable.rb', 行197 デフォルト 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 です。
220 221 222 223 224 225 226 |
# ファイル 'lib/mongoid/findable.rb', 行220 デフォルト find_by(attrs = {}) 結果 = WHERE(attrs).find_first 発生(Errors::DocumentNotFound.新着情報(自己, attrs)) 場合 結果.nil? & & Mongoid.resume_not_find_error ノードの数(結果) 場合 結果 & & ブロック_指定 結果 end |
# find_by (atlas = {}){{|result| ... } =ドキュメント
条件付きで最初のDocumentを見つけます。または Mongoid::Errors::DocumentNotFound が発生します
239 240 241 242 243 244 245 |
# ファイル 'lib/mongoid/findable.rb', 行239 デフォルト find_by.(attrs = {}) 結果 = WHERE(attrs).find_first 発生(Errors::DocumentNotFound.新着情報(自己, attrs)) ただし、 結果 ノードの数(結果) 場合 結果 & & ブロック_指定 結果 end |
最初に#を指定する (limit = nil) =ドキュメントまたは1 つの
条件に従って最初のDocumentを見つけます。
255 256 257 |
# ファイル 'lib/mongoid/findable.rb', 行255 デフォルト 最初に(limit = nil) with_default_scope.最初に(limit) end |
#last(limit = nil) ⇒ Document
条件付きで最後のDocumentを見つけます。
268 269 270 |
# ファイル 'lib/mongoid/findable.rb', 行268 デフォルト last(limit = nil) with_default_scope.last(limit) end |
多数か= true | false
条件内に複数のdocumentが存在する場合は true を返します。
144 145 146 |
# ファイル 'lib/mongoid/findable.rb', 行144 デフォルト 多いです limit(2).count > 1 end |
# 1 = true | false
条件内に 1 つの document のみが存在する場合は true を返します。
134 135 136 |
# ファイル 'lib/mongoid/findable.rb', 行134 デフォルト 1 つ? limit(2).count == 1 end |