モジュール: Mongoid::Findable

次による拡張機能。
転送可能
定義:
lib/mongoid/findable.rb

Overview

このモジュールは、クラス レベルでドキュメントをハングする検索メソッドを定義します。

インスタンス メソッドの概要を折りたたむ

インスタンス メソッドの詳細

# 任意?true | false

条件内に document が存在する場合は true を返します。

例:

documentが存在するかどうかの判断

Model.any?

次の値を返します。

  • true | false

    If any document exist.



124
125
126
# ファイル 'lib/mongoid/findable.rb', 行124

デフォルト any?
  limit(1).count > 0
end

#countInteger

データベース内のレコードのカウントを返します。 条件を指定する場合は、 を使用します。

例:

一致するドキュメントの数を取得します。

Person.count
Person.where(title: "Sir").count

次の値を返します。

  • (整数)

    一致するドキュメントの数。



73
74
75
# ファイル 'lib/mongoid/findable.rb', 行73

デフォルト count
  with_default_scope.count
end

#= true | false

カウントがゼロの場合は true を返します

例:

このモデルに保存されたドキュメントはありませんか。

Person.empty?

次の値を返します。

  • true | false

    コレクションが空の場合。



93
94
95
# ファイル 'lib/mongoid/findable.rb', 行93

デフォルト 空の場合
  count == 0
end

#estimate_count = 整数

データベース内のレコードの推定数を返します。

例:

一致するドキュメントの数を取得します。

Person.estimated_count

次の値を返します。

  • (整数)

    一致するドキュメントの数。



83
84
85
# ファイル 'lib/mongoid/findable.rb', 行83

デフォルト Estimated_count
  with_default_scope.Estimated_count
end

が存在する場合(id_or_条件 = :none) = true | false

指定された引数に基づいて、データベースにドキュメントがある場合は true を返します。

例:

条件に一致するドキュメントは存在しますか。

Person.exists?

指定された _id のドキュメントが存在するかどうか。

Person.exists?(BSON::ObjectId(...))

指定された条件のためにドキュメントが存在するかどうかを確認します。

Person.exists?(name: "...")

パラメーター:

  • id_or_条件 ハッシュ | オブジェクト | false (デフォルトは:none

    検索対象の _id、条件のハッシュ、 nil または false 。

次の値を返します。

  • true | false

    条件を満たすドキュメントが存在する場合。 nil または false が渡された場合は常に false 。



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 の場合、 findnilを返します。

複数の引数が指定されている場合、または配列引数が指定されている場合、配列はフラット化され、各配列要素は検索対象のドキュメントの _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メソッドは、モデル クラスに定義されているデフォルトのスコープを考慮します(存在する場合)。

パラメーター:

  • *args [ オブジェクト | 配列 <Object> ]...

    検索対象の ID。

次の値を返します。

  • (Document | Array<Document> | nil)

    1 つまたは複数のドキュメント。

次の値が発生します。

  • Errors::DocumentNotFound すべてのドキュメントが見つからず、 raise_not_found_error Mongoid 構成オプションが true の場合。



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 です。

例:

ID 以外の属性でドキュメントを検索

Person.find_by(:username => "superuser")

パラメーター:

  • attrs ハッシュ (デフォルトは{}です)

    チェックする属性。

結果:

  • 結果

次の値を返します。

  • (Document | nil)

    一致するドキュメント。

次の値が発生します。



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 が発生します

例:

ID 以外の属性でドキュメントを検索

Person.find_by(:username => "superuser")

パラメーター:

  • attrs ハッシュ (デフォルトは{}です)

    チェックする属性。

結果:

  • 結果

次の値を返します。

次の値が発生します。



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を見つけます。

例:

最初のドキュメントを見つけます。

Person.first

パラメーター:

  • limit 整数 (デフォルトはnil

    返されるドキュメントの数。

次の値を返します。



255
256
257
# ファイル 'lib/mongoid/findable.rb', 行255

デフォルト 最初に(limit = nil)
  with_default_scope.最初に(limit)
end

#last(limit = nil) ⇒ Document

条件付きで最後のDocumentを見つけます。

例:

最後のドキュメントを見つけます。

Person.last

パラメーター:

  • limit 整数 (デフォルトはnil

    返されるドキュメントの数。

次の値を返します。



268
269
270
# ファイル 'lib/mongoid/findable.rb', 行268

デフォルト last(limit = nil)
  with_default_scope.last(limit)
end

多数か= true | false

条件内に複数のdocumentが存在する場合は true を返します。

例:

多数のdocumentが存在するかどうかの判断

Model.many?

次の値を返します。

  • true | false

    多数のdocumentが存在する場合。



144
145
146
# ファイル 'lib/mongoid/findable.rb', 行144

デフォルト 多いです
  limit(2).count > 1
end

# 1 = true | false

条件内に 1 つの document のみが存在する場合は true を返します。

例:

documentが1 つだけ存在するかどうかを判断

Model.one?

次の値を返します。

  • true | false

    documentが 1 つだけ存在する場合。



134
135
136
# ファイル 'lib/mongoid/findable.rb', 行134

デフォルト 1 つ?
  limit(2).count == 1
end