クラス: Mongoid::criteria

継承:
オブジェクト
  • オブジェクト
すべて表示
次のことが含まれます。
列挙 可能、 監視 可能 、 Mongoid ::Clients::Options Mongoid ::Clients::Sessions Contextual 検索 可能
定義:
lib/mongoid/criteria.rb
lib/mongoid/criteria/options.rb、
lib/mongoid/criteria/findable.rb、
lib/mongoid/criteria/scopable.rb、
lib/mongoid/criteria/queryable.rb、
lib/mongoid/criteria/includeable.rb、
lib/mongoid/criteria/modified.rb、
lib/mongoid/criteria/permission.rb、
lib/mongoid/criteria/translator.rb、
lib/mongoid/criteria/mergerable.rb、
lib/mongoid/criteria/queryable/key.rb、
lib/mongoid/criteria/queryable/smash.rb、
lib/mongoid/criteria/queryable/options.rb、
lib/mongoid/criteria/queryable/optional.rb、
lib/mongoid/criteria/queryable/ pipeline.rb、
lib/mongoid/criteria/queryable/selector.rb、
lib/mongoid/criteria/queryable/storable.rb、
lib/mongoid/criteria/queryable/macroable.rb、
lib/mongoid/criteria/queryable/mergeable.rb、
lib/mongoid/criteria/queryable/aggregable.rb、
lib/mongoid/criteria/queryable/expandable.rb、
lib/mongoid/criteria/queryable/selectable.rb、
lib/mongoid/criteria/queryable/extentions/set.rb、
lib/mongoid/criteria/queryable/extentions/date.rb,
lib/mongoid/criteria/queryable/extentions/hash.rb、
lib/mongoid/criteria/queryable/extentions/time.rb、
lib/mongoid/criteria/queryable/extentions/array.rb、
lib/mongoid/criteria/queryable/extentions/range.rb、
lib/mongoid/criteria/queryable/extentions/object.rb、
lib/mongoid/criteria/queryable/extentions/regexp.rb、
lib/mongoid/criteria/queryable/extentions/string.rb、
lib/mongoid/criteria/queryable/extentions/symbol.rb、
lib/mongoid/criteria/queryable/extentions/boolan.rb、
lib/mongoid/criteria/queryable/extentions/numeric.rb、
lib/mongoid/criteria/queryable/extentions/date_time.rb、
lib/mongoid/criteria/queryable/extentions/nil_Class.rb、
lib/mongoid/criteria/queryable/extentions/big_decimal.rb、
lib/mongoid/criteria/queryable/extentions/time_with_zone.rb

Overview

Criteriaクラスは、Mongoid がデータベースからオブジェクトを検索するために必要なコア オブジェクトです。 これは、Ruby ドライバーの Mongo::Collection に渡されるセレクターとオプションの引数を基本的に設定する DSL です。 Criteriaの各メソッドは、データベースに対して実行する読み取り可能な基準を作成するために連鎖させることができる自分自身を返します。

名前空間で定義済み

Modules: 検索 可能 包含 可能マーシャリング 可能 、 変更可能 、 オプション 、 権限 、 クエリ 可能 、 スコープ 可能 、 トランスレーター

定数の概要の削減

AllowED_FROM_Hash_METHODS =

無作為なメソッド実行を防ぐために、 from_hash のメソッドを許可しましたクエリ構築メソッドのみが許可され、実行メソッドまたは変更メソッドは許可されません。

%i[
  すべて all_in all_ of および any_in any_of asc 上昇
  batch_size 
  collation comment cursor_type
  desc 下降
  elem_match eq exists extras
  geo_patial グループ gt gte
  hint
  in 次が含まれます:
  limit lt lte
  max_ ユーザー距離 max_scan max_time_ms merge mod
  ne near near_sphere nin no_timeout なし non_ of NULLではない ではない not_in
  オフセット 制限する or ordered order_by
  プロジェクト
   読み取り reorder
  scoped スキップ スライス スナップショット
  text_search タイプ
  スコープが設定されていない unwind
  WHERE with_size with_type 次のない:
].freeze
CHECK =

メソッドが欠落しているかを確認するために使用される静的配列。インスタンス化する必要があるのは一度だけです。

[]

インスタンス属性の概要を折りたたむ

変更可能なに含まれる属性

#create_attrs#create_attrs 作成時にドキュメントに追加する追加の属性。

クエリ可能な に含まれる属性

エイリアス#エイリアス 。#serializer#serializer シリアライザー。

Queryable::任意に含まれる属性

#options#options クエリ オプション。

Queryable::Aggregableに含まれる属性

集計集計 フラグ。集計するかどうかを指定します。集計パイプライン 、パイプライン 集計パイプライン。

Queryable::mergeableに含まれる属性

#戦略#戦略 現在の戦略の名前。

クラスメソッドの概要を折りたたむ

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

Mongoid::Clients::Sessionsに含まれるメソッド

次が含まれます:

Mongoid ::Clients::Optionsに含まれるメソッド

#collection#collection_name#mongo_client 、#永続性_context 、#永続性_context?

Scopesに含まれるメソッド

#apply_default_scope#apply_scope#remove_scoping 、# scoped 、#スコープ付きスコープ設定_オプション 、スコープ設定_オプション=スコープなしスコープなし#with_default_scope

変更可能なに含まれるメソッド

ビルド作成作成 。#create_with#find_or_create_by#find_or_create_by.#find_or_initialize_by#first_or_create#first_or_create#first_or_initiate

マーシャリング可能なに含まれるメソッド

#merger_dump#merger_load

Includeableから含まれるメソッド

#EAger_load#includes#includes#includes=#use_lookup?

Findableに含まれるメソッド

#execute_or_ Ops#for_ids#multiple_from_db

クエリ可能な に含まれるメソッド

#to_mql

Queryable:: 任意に含まれるメソッド

昇順 バッチ _ サイズ 照合 、 、 、 、 、 および

Queryable::Macroableに含まれるメソッド

#key

選択可能なに含まれるメソッド

#アトミック_Selector

Queryable::Aggregableに含まれるメソッド

必要な集計 #group 、#project # unwind

Queryable::mergeableに含まれるメソッド

#and_with_operator#交差#上書き#reset_strategis 。#union

Queryable::Storableに含まれるメソッド

#add_field_ Expression#add_ logical_operator_ Expression#add_one_ Expression#add_operator_ Expression

Contextualに含まれるメソッド

#context, #load_async

コンストラクターの詳細

#initialize(klass) ⇒ Criteria

新しい基準を初期化します。

例:

新しい条件を開始します。

Criteria.new(Band)

パラメーター:

  • klass クラス

    モデル クラス。



323
324
325
326
327
328
# ファイル 'lib/mongoid/criteria.rb', 行323

デフォルト 初期化(klass)
  @klass = klass
  @ embedded = nil
  @none = nil
  klass ? スーパー(klass.analyzed_fields, klass.フィールド, klass.関係, klass.alased_ associateds) : スーパー({}, {}, {}, {})
end

動的メソッド処理

このクラスはメソッド_欠落メソッドを通じて動的メソッドを処理します

#メソッド_欠落 =オブジェクト(プライベート)

基準は のクラス メソッドである、 Document Criteriaのスコープを連結するために使用されます。

例:

処理メソッドがありません。

criteria.method_missing(:name)

パラメーター:

  • name シンボル

    メソッド名。

  • *args オブジェクト...

    引数。

次の値を返します。

  • オブジェクト

    メソッド呼び出しの結果。



619
620
621
622
623
624
625
626
627
628
629
# ファイル 'lib/mongoid/criteria.rb', 行619

ruby2_keywords デフォルト メソッド_欠落(name, *args, &ブロック)
  場合 klass.respond_to?(name)
    klass.送信(:with_scope, 自己) 行う
      klass.送信(name, *args, &ブロック)
    end
  elsif チェック.respond_to?(name)
    エントリ.送信(name, *args, &ブロック)
  else
    スーパー
  end
end

インスタンス属性の詳細

#_raw_resultsnil | Hash

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

指定された 基準オブジェクトの "raw" フラグを取得/設定するための内部ヘルパー。

次の値を返します。

  • ( nil | ハッシュ )

    これは、未加工の結果を返すかどうか、およびタイプキャストする必要があるかどうかを記述する :raw と :typed の 2 つのキーを持つハッシュです。



244
245
246
# ファイル 'lib/mongoid/criteria.rb', 行244

デフォルト _raw_results
  @_raw_results
end

#の関連付け=オブジェクト

属性の関連付けの値を返します。



100
101
102
# ファイル 'lib/mongoid/criteria.rb', 行100

デフォルト 関連付け
  @関連付け
end

#documentsArray<Document>

埋め込み条件からドキュメントを取得します。

例:

ドキュメントを取得します。

criteria.documents

次の値を返します。



183
184
185
# ファイル 'lib/mongoid/criteria.rb', 行183

デフォルト ドキュメント
  @documents ||= []
end

埋め込み=オブジェクト

埋め込まれた属性の値を返します。



100
101
102
# ファイル 'lib/mongoid/criteria.rb', 行100

デフォルト 埋め込み
  @ embedded
end

#klassObject

属性 klas の値を返します。



100
101
102
# ファイル 'lib/mongoid/criteria.rb', 行100

デフォルト klass
  @klass
end

#parent_document =オブジェクト

属性の親_ドキュメントの値を返します。



100
101
102
# ファイル 'lib/mongoid/criteria.rb', 行100

デフォルト 親_ドキュメント
  @parent_document
end

クラスメソッドの詳細

from_hash (ハッシュ) =====================================================

非推奨。

このメソッドは非推奨であり、将来のリリースで削除される予定です。

指定されたハッシュを基準に変換します。ハッシュ内の各キーを反復処理します。このキーは、 基準オブジェクトの許可されたメソッドに対応する必要があります。ハッシュには、基準の model クラスを指定する "klas" キーを含めることができます。

例:

ハッシュを基準に変換します。

Criteria.from_hash({ klass: Band, where: { name: "Depeche Mode" })

パラメーター:

  • ハッシュ ハッシュ

    変換するハッシュ。

次の値を返します。

次の値が発生します。

  • (ArgumentError)

    メソッドが from_hash で許可されていない場合。



81
82
83
84
85
86
87
88
89
90
91
92
# ファイル 'lib/mongoid/criteria.rb', 行81

デフォルト from_hash(ハッシュ)
  条件 = 条件.新着情報(ハッシュ.削除(:klass) || ハッシュ.削除('klass'))
  ハッシュ.each_pair 行う |メソッド, args|
    Method_sym = メソッド.to_sym
    ただし、 AllowED_FROM_Hash_METHODS.include?(Method_sym)
      発生 ArgumentError, " メソッド " #{メソッド } は from_hash では許可されていません "
    end

    条件 = 条件.public_send(Method_sym, args)
  end
  条件
end

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

# == (その他) ==(その他) ========= ================================================================== false

注:

これにより、列挙可能な値が渡される場合、呼び出されたときにデータベースの負荷が強制されます。

指定されたEnumerableまたはCriteriaがこのCriteriaの結果または条件自体と等しい場合は true を返します。

パラメーター:

  • その他 オブジェクト

    比較するもう 1 つのEnumerableまたはCriteria

次の値を返します。

  • true | false

    オブジェクトが等しい場合。



110
111
112
113
114
# ファイル 'lib/mongoid/criteria.rb', 行110

デフォルト ==(その他)
  return スーパー 場合 その他.respond_to?(: セレクター)

  エントリ == その他
end

#_enumerable_findObject

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。



24
# ファイル 'lib/mongoid/criteria.rb', 行24

エイリアス _enumerable_find find

# _findable_find =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。



31
# ファイル 'lib/mongoid/criteria.rb', 行31

エイリアス _findable_find find

#as_json(options = nil) ⇒ String

基準をJSONとして正しく返すために必要

例:

基準をJSONとして取得します。

Person.where(:title => "Sir").as_json

パラメーター:

  • options ハッシュ (デフォルトはnil

    シリアライザーに渡すオプション。

次の値を返します。

  • ( string )

    JSON string。



173
174
175
# ファイル 'lib/mongoid/criteria.rb', 行173

デフォルト as_json(options = nil)
  エントリ.as_json(options)
end

#埋め込み = true | false

埋め込みドキュメントの基準は か?

例:

埋め込みドキュメントの基準は か?

criteria.embedded?

次の値を返します。

  • true | false

    条件が埋め込まれている場合。



202
203
204
# ファイル 'lib/mongoid/criteria.rb', 行202

デフォルト 埋め込み
  !!@ embedded
end

# empty_and_linkable? = true | false

基準は空であるが連鎖可能な基準か。

例:

基準はありませんか。

criteria.empty_and_chainable?

次の値を返します。

  • true | false

    条件が なし の場合。



394
395
396
# ファイル 'lib/mongoid/criteria.rb', 行394

デフォルト empty_and_tainable?
  !!@none
end

#tract_id =オブジェクト

指定された条件から 1 つの ID を抽出します。 $and クエリまたは単一の _id クエリにある可能性があります。

例:

ID を抽出します。

criteria.extract_id

次の値を返します。

  • オブジェクト

    ID。



272
273
274
# ファイル 'lib/mongoid/criteria.rb', 行272

デフォルト extra_id
  セレクター['_id'] || セレクター[:_id] || セレクター['id'] || セレクター[:id]
end

#extras(extras) ⇒ Criteria

Ruby ドライバーに渡す追加オプションを、ドライバーの正確な形式で指定する基準をCriteriaに追加します。

criteria.Extras(:limit => 20 、 :skip => 40 )

例:

基準に余計なパラメータを追加します。

パラメーター:

  • extras ハッシュ

    追加のドライバー オプション。

次の値を返します。

  • 基準

    複製された基準。



285
286
287
288
289
# ファイル 'lib/mongoid/criteria.rb', 行285

デフォルト extras(extras)
  crit = 複製
  crit.options.mergeします。(extras)
  crit
end

# field_list = 配列 =string=string========================<String>

含まれるフィールドの一覧を取得します。

例:

フィールド リストを取得します。

criteria.field_list

次の値を返します。

  • <String>配列未満

    フィールド。



297
298
299
300
301
302
303
# ファイル 'lib/mongoid/criteria.rb', 行297

デフォルト field_list
  場合 options[:fields]
    options[:fields].キー.拒否 { |キー| キー == klass.弁別子_キー }
  else
    []
  end
end

#find(*args) {|Object| ... } ⇒ Document | Array<Document> | nil

注:

各引数は、個々の ID、ID の配列、またはネストされた配列にすることができます。 各配列はフラット化されます。

指定された _id 値を指定して 1 つまたは複数のドキュメントを検索するか、必要に応じてアプリケーション プロセス空間で現在のスコープ内のドキュメントをフィルタリングします。

このメソッドでブロックが指定されていない場合、Findable#find に委任し、指定された _id 値の 1 つまたは複数の document を検索します。

このメソッドにブロックが与えられている場合、Enumerable#find に委任し、ブロックが true 値を返す現在の Criteriaオブジェクトによって見つかったdocumentのうちの最初のdocumentを返します。

列挙可能の「デフォルトプロシージャ」引数は Mongoid では特別に処理されていないことに注意してください。Findable に委任するか Enumerable に委任するかは、find にブロックが渡されているかどうかのみに基づいて行われます。

例:

_id でドキュメントを検索し、 Findable#find を呼び出します。

criteria.find("1234")

ブロックを使用して最初に一致するドキュメントを検索し、 Ennumerable#find を呼び出します。

criteria.find { |item| item.name == "Depeche Mode" }

デフォルトの Proc を使用してブロックを使用して最初に一致するドキュメントを検索し、 Ennumerable#find を呼び出します。

criteria.find(-> { "Default Band" }) { |item| item.name == "Milwaukee Mode" }

_id が提供された Proc の文字列化であるドキュメントの検索は、通常失敗します。

enumerator = criteria.find(-> { "Default Band" })

パラメーター:

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

    ID。

  • & ブロック

    渡す任意のブロック。

結果:

  • オブジェクト

    各列挙可能な要素をブロックに変換します。

次の値を返します。

  • (Document | Array<Document> | nil)

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

次の値が発生します。

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

以下も参照してください。



157
158
159
160
161
162
163
# ファイル 'lib/mongoid/criteria.rb', 行157

デフォルト find(*args, &ブロック)
  場合 ブロック_指定
    _enumerable_find(*args, &ブロック)
  else
    _findable_find(*args)
  end
end

for_js ( JavaScript 、scope = {}) =条件

非推奨。

指定された JavaScript とスコープで document を検索します。$where を使用しますが、生の string ではなくコードオブジェクトがクエリに渡される点が Criteria#where とは異なります。Javascript インジェクション攻撃に対して安全です。

例:

JavaScriptで検索します。

Band.for_js("this.name = param", param: "Tool")

パラメーター:

  • JavaScript ( string )

    $where で実行するJavaScript 。

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

    コードの範囲。

次の値を返します。



553
554
555
556
557
558
559
560
561
# ファイル 'lib/mongoid/criteria.rb', 行553

デフォルト for_js(JavaScript, scope = {})
  コード = 場合 scope.空の場合
           MongoDB 4.4以降、CodeWithScopes は $where ではサポートされていません
           BSON::コード.新着情報(JavaScript)
         else
           BSON::CodeWithScopes.新着情報(JavaScript, scope)
         end
  js_query(コード)
end

#freezeCriteria

基準を解放する場合は、最初にコンテキストを初期化する必要があります。そうでない場合、反復試行時にコンテキストの設定によりランタイムエラーが発生します。

例:

基準を固定します。

criteria.freeze

次の値を返します。

  • 基準

    固定された基準。



313
314
315
# ファイル 'lib/mongoid/criteria.rb', 行313

デフォルト freeze
  context および includes および スーパー
end

# merge (その他)=基準

このCriteriaで別のオブジェクトをマージし、新しい条件を返します。 他のオブジェクトはCriteriaまたはHashです。 これは複数のスコープをまとめて使用するために使用され、連鎖したスコープ状況が必要になる場合があります。

例:

基準を別の基準とマージします。

criteria.merge(other_criteria)

ハッシュで条件をマージします。 ハッシュには klas が含まれている必要があります。

key that specifies the model class for the criteria and the key/value
pairs correspond to method names/args.

criteria.merge({
  klass: Band,
  where: { name: "Depeche Mode" },
  order_by: { name: 1 }
})

パラメーター:

  • その他 条件| ハッシュ

    マージするその他の基準。

次の値を返します。

  • 基準

    複製された自己。



351
352
353
354
355
# ファイル 'lib/mongoid/criteria.rb', 行351

デフォルト merge(その他)
  crit = 複製
  crit.mergeします。(その他)
  crit
end

# merge。 (その他) →基準

他の基準をこの基準にマージします。

例:

別の基準をこの基準にマージします。

criteria.merge(Person.where(name: "bob"))

パラメーター:

  • その他 条件| ハッシュ

    マージする基準。

次の値を返します。

  • 基準

    マージされた基準。



365
366
367
368
369
370
371
372
373
374
375
# ファイル 'lib/mongoid/criteria.rb', 行365

デフォルト mergeします。(その他)
  その他 = 自己.クラス.from_hash(その他) 場合 その他.is_a?(ハッシュ)
  セレクター.mergeします。(その他.セレクター)
  options.mergeします。(その他.options)
  自己.ドキュメント = その他.ドキュメント.dup ただし、 その他.ドキュメント.空の場合
  自己.scope_options = その他.scope_options
  自己.includes = (includes + その他.includes).一意
  自己._raw_results = _raw_results || その他._raw_results
  @use_lookup ||= その他.use_lookup?
  自己
end

#noneCriteria

常にゼロ結果を含み、データベースにヒットしない条件を返します。

例:

条件以外の を返します。

criteria.none

次の値を返します。

  • 基準

    なし 基準。



384
385
386
# ファイル 'lib/mongoid/criteria.rb', 行384

デフォルト なし
  @none = true および 自己
end

#のみ(*args)= Criteria

フィールドに _type を含めるようにオーバーライドされます。

例:

データベースから返されるフィールドを制限します。

Band.only(:name)

パラメーター:

  • *args [ Symbol | Array[]<Symbol> ]...

    フィールド名。

次の値を返します。

  • 基準

    複製された基準。



406
407
408
409
410
411
412
413
# ファイル 'lib/mongoid/criteria.rb', 行406

デフォルト 制限する(*args)
  args = args.平面
  return 複製 場合 args.空の場合

  args.unshift(:_id) 場合 (args & フィールド::IDS).空の場合
  args.プッシュ(klass.弁別子_キー.to_sym) 場合 klass.継承
  スーパー
end

# accumulate_eager_error (is_eager_load, klas, 関係) ⇒ オブジェクト

次の値が発生します。



115
116
117
118
119
120
121
ファイル 'lib/mongoid/criteria/includeable.rb' の検索ライン115

デフォルト accumulate_eager_error(is_reader_load, klass, 関係)
  場合 is_reader_load
    発生 ArgumentError, "Eager loading は、#{klass} の関連付けの名前である引数のみをサポートします"
  end

  発生 Errors::Invalid include.新着情報(klass, [ 関係 ])
end

#raw(raw_results = true、typed: nil) = 基準

「未加工」設定を指定された値に設定して、現在の基準オブジェクトのクローンを生成します。基準を「raw」に設定すると、すべての結果が未加工のハッシュとして返されます。typed が true の場合、ハッシュ内の値は、対応するフィールドに従って型変換されます。

「raw」が設定されていない場合(または raw_results が false の場合)、条件はすべての結果をインスタンス化された document インスタンスとして返します。

例:

クエリ結果を未加工のハッシュとして返す:

Person.where(city: 'Boston').raw

パラメーター:

  • raw_results true | false (デフォルトはtrue

    新しい基準を「raw」モードに配置するかどうか。

  • typed true | false (デフォルトはnil

    未加工の結果を返す前にタイプキャストするかどうか。デフォルトは、raw_results が false の場合は true であり、それ以外の場合は false です。

次の値を返します。

  • 基準

    複製された基準オブジェクト。

次の値が発生します。

  • (ArgumentError)


224
225
226
227
228
229
230
231
232
233
234
# ファイル 'lib/mongoid/criteria.rb', 行224

デフォルト (raw_results = true, type: nil)
  型のデフォルトは raw_results が false の場合は true であり、次の場合は false です。
  Raw_results は true です。
  typed = !raw_results 場合 typed.nil?

  発生 ArgumentError, インスタンス化された結果は タイプキャスト である必要があります 。 場合 !typed & & !raw_results

  複製.タップ 行う |条件|
    条件._raw_results = { raw: raw_results, type: typed }
  end
end

raw_results は?= true | false

述語が という質問に答えます。この基準オブジェクトは現在 rawモードになっていますか。( rawモードの説明については、 「#raw」 を参照してください。)

次の値を返します。

  • true | false

    基準が rawモードであるかどうか。



250
251
252
# ファイル 'lib/mongoid/criteria.rb', 行250

デフォルト raw_results?
  _raw_results & & _raw_results[:raw]
end

# read (value = nil) = nil = nil) =基準

基準の読み込み設定 (read preference) を設定します。

例:

読み込み設定 (read preference) を設定します。

criteria.read(mode: :primary_preferred)

パラメーター:

  • 価値 ハッシュ (デフォルトはnil

    モードの設定。

次の値を返します。

  • 基準

    複製された基準。



423
424
425
426
427
# ファイル 'lib/mongoid/criteria.rb', 行423

デフォルト 読み取り(価値 = nil)
  複製.タップ 行う |条件|
    条件.options.mergeします。(read: 価値)
  end
end

response_to? (name, include_private = false) = true | false

条件が指定されたメソッドに応答する場合は true を返します。

例:

基準は メソッドに応答しますか。

criteria.respond_to?(:each)

パラメーター:

  • name シンボル

    Documentのクラス メソッドの名前。

  • include_private true | false (デフォルトはfalse

    プライベートを含めるかどうか。

次の値を返します。

  • true | false

    条件が メソッドに応答する場合。



451
452
453
# ファイル 'lib/mongoid/criteria.rb', 行451

デフォルト respond_to?(name, include_private = false)
  スーパー || klass.respond_to?(name) || チェック.respond_to?(name, include_private)
end

#to_criteriaCriteria

非推奨。

基準にマージしたいオブジェクトの便宜上。

例:

基準に変換します。

criteria.to_criteria

次の値を返します。



464
465
466
# ファイル 'lib/mongoid/criteria.rb', 行464

デフォルト to_criteria
  自己
end

#to_procProc

基準をプロシージャに変換します。

例:

基準をプロシージャに変換します。

criteria.to_proc

次の値を返します。

  • Proc

    ラップされた基準。



475
476
477
# ファイル 'lib/mongoid/criteria.rb', 行475

デフォルト to_proc
  -> { 自己 }
end

(types) ~ 型( criteria

一致する必要があるタイプまたはタイプの配列を指定する基準をCriteriaに追加します。

例:

特定のモデルのみと一致します。

criteria.type('Browser')
criteria.type(['Firefox', 'Browser'])

パラメーター:

  • タイプ <String>配列未満

    照合するタイプ。

次の値を返します。

  • 基準

    複製された基準。



489
490
491
# ファイル 'lib/mongoid/criteria.rb', 行489

デフォルト タイプ(タイプ)
  any_in(弁別子_キー.to_sym => 配列(タイプ))
end

#type Cast_results?true | false

述語が、この条件オブジェクトによって返される結果をタイプキャストする必要があるかという質問に答えます。(これの説明については、 #raw を参照してください。)この回答は、 #raw_results 以外では意味がありません。は true です。これは、インスタンス化されたドキュメントオブジェクトが返される場合、それらは常にタイプキャストされるためです。

次の値を返します。

  • true | false

    条件がタイプキャスト結果を返すかどうか。



261
262
263
# ファイル 'lib/mongoid/criteria.rb', 行261

デフォルト type Cast_results?
  _raw_results & & _raw_results[:typed]
end

( *args) = 条件

これは、ほとんどの MongoDB クエリの一般的なエントリ ポイントです。 これにより、標準フィールドである値の選択と、ハッシュメソッドを使用して拡張された選択が作成されるか、string が指定されている場合は $where 選択が作成されます。

例:

標準選択 を追加します。

criteria.where(name: "syd")

JavaScriptの選択を追加します。

criteria.where("this.name == 'syd'")

パラメーター:

  • *args [ ハッシュ | string ]...

    標準選択またはJavaScript string 。

次の値を返します。

  • 基準

    選択可能な を複製しました。

次の値が発生します。

  • サポート対象外の Javascript

    string が指定され、条件が埋め込まれている場合。



510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
# ファイル 'lib/mongoid/criteria.rb', 行510

デフォルト WHERE(*args)
  # 過去にこのメソッドには 1 つの引数が必要でした。
  https://JIRA.mongodb.org/browse/MONGOID-{0 4804時点 も受け入れます
  # zero arguments.
  スーパー呼び出しを行う実装がサポートする基礎となる
  任意の数の引数を使用できますが、現在は複数の引数は許可されていません
  このメソッドによる 引数。 この API は、次で再検討できます
  # 将来
  発生 ArgumentError, " Criteria#where は 0 または 1 つの引数を必要とします( # { args . strength } 場合 args.Length > 1

  場合 args.Length == 1
     = args.最初に
    発生 Errors::UnsupportedJavascript.新着情報(klass, ) 場合 .is_a?(::文字列) & & 埋め込み
  end
  スーパー
end

(*args)なしの# = 条件 =基準

フィールドから _id を除外するにはオーバーライドします。

例:

データベースから返されたフィールドを除外します。

Band.without(:name)

パラメーター:

  • *args (Symbol...)

    フィールド名。

次の値を返します。

  • 基準

    複製された基準。



437
438
439
440
# ファイル 'lib/mongoid/criteria.rb', 行437

デフォルト 次のない:(*args)
  args -= id_fields
  スーパー
end

_options を使用しないオプションを使用する。

オプションを指定せずに、この条件のバージョンを取得します。

例:

オプションなしで基準を取得します。

criteria.without_options

次の値を返します。

  • 基準

    複製された基準。



533
534
535
536
537
# ファイル 'lib/mongoid/criteria.rb', 行533

デフォルト without_options
  crit = 複製
  crit.options.クリア
  crit
end