クラス: 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: 検索 可能 包含 可能マーシャリング 可能 、 変更可能 、 オプション 、 権限 、 クエリ 可能 、 スコープ 可能 、 トランスレーター

定数の概要の削減

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から含まれるメソッド

を含む: 、 を含む、 を含む

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 クラス

    モデル クラス。

[ソースを表示]

294
295
296
297
298
299
# ファイル 'lib/mongoid/criteria.rb', 行294

デフォルト 初期化(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 オブジェクト...

    引数。

次の値を返します。

  • オブジェクト

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

[ソースを表示]

593
594
595
596
597
598
599
600
601
602
603
# ファイル 'lib/mongoid/criteria.rb', 行593

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

インスタンス属性の詳細

#_raw_resultsnil | Hash

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

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

次の値を返します。

  • ( nil | ハッシュ )

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


215
216
217
# ファイル 'lib/mongoid/criteria.rb', 行215

デフォルト _raw_results
  @_raw_results
end

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

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


68
69
70
# ファイル 'lib/mongoid/criteria.rb', 行68

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

埋め込み=オブジェクト

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


68
69
70
# ファイル 'lib/mongoid/criteria.rb', 行68

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

#klassObject

属性 klas の値を返します。


68
69
70
# ファイル 'lib/mongoid/criteria.rb', 行68

デフォルト klass
  @klass
end

#parent_document =オブジェクト

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


68
69
70
# ファイル 'lib/mongoid/criteria.rb', 行68

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

クラスメソッドの詳細

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

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

例:

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

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

パラメーター:

  • ハッシュ ハッシュ

    変換するハッシュ。

次の値を返します。

[ソースを表示]

55
56
57
58
59
60
61
# ファイル 'lib/mongoid/criteria.rb', 行55

デフォルト from_hash(ハッシュ)
  条件 = 条件.新着情報(ハッシュ.削除(:klass) || ハッシュ.削除('klass'))
  ハッシュ.each_pair 行う |メソッド, args|
    条件 = 条件.__send__(メソッド, args)
  end
  条件
end

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

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

注:

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

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

パラメーター:

  • その他 オブジェクト

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

次の値を返します。

  • true | false

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

[ソースを表示]

78
79
80
81
# ファイル 'lib/mongoid/criteria.rb', 行78

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

#_enumerable_findObject

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

[ソースを表示]

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

エイリアス :_enumrable_find :find

# _findable_find =オブジェクト

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

[ソースを表示]

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

エイリアス :_findable_find :find

#as_json(options = nil) ⇒ String

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

例:

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

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

パラメーター:

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

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

次の値を返します。

  • ( string )

    JSON string。

[ソースを表示]

140
141
142
# ファイル 'lib/mongoid/criteria.rb', 行140

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

#documentsArray<Document>

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

例:

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

criteria.documents

次の値を返します。

[ソースを表示]

150
151
152
# ファイル 'lib/mongoid/criteria.rb', 行150

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

#documents=(docs) ⇒ Array<Document>

基準に埋め込みドキュメントを設定します。

例:

ドキュメントを設定します。

パラメーター:

次の値を返します。

[ソースを表示]

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

デフォルト document==(docs)
  @documents = docs
end

#埋め込み = true | false

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

例:

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

criteria.embedded?

次の値を返します。

  • true | false

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

[ソースを表示]

171
172
173
# ファイル 'lib/mongoid/criteria.rb', 行171

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

# empty_and_linkable? = true | false

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

例:

基準はありませんか。

criteria.empty_and_chainable?

次の値を返します。

  • true | false

    条件が なし の場合。

[ソースを表示]

363
364
365
# ファイル 'lib/mongoid/criteria.rb', 行363

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

#tract_id =オブジェクト

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

例:

ID を抽出します。

criteria.extract_id

次の値を返します。

  • オブジェクト

    ID。

[ソースを表示]

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

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

#extras(extras) ⇒ Criteria

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

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

例:

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

パラメーター:

  • extras ハッシュ

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

次の値を返します。

  • 基準

    複製された基準。

[ソースを表示]

256
257
258
259
260
# ファイル 'lib/mongoid/criteria.rb', 行256

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

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

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

例:

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

criteria.field_list

次の値を返します。

  • <String>配列未満

    フィールド。

[ソースを表示]

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

デフォルト 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 つまたは複数のドキュメントを検索します。

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

列挙可能の「デフォルトのプロシージャ」引数は 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 の場合。

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

[ソースを表示]

124
125
126
127
128
129
130
# ファイル 'lib/mongoid/criteria.rb', 行124

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

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

非推奨。

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

例:

JavaScriptで検索します。

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

パラメーター:

  • JavaScript ( string )

    $where で実行するJavaScript 。

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

    コードの範囲。

次の値を返します。

[ソースを表示]

528
529
530
531
532
533
534
535
536
# ファイル 'lib/mongoid/criteria.rb', 行528

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

#freezeCriteria

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

例:

基準を固定します。

criteria.freeze

次の値を返します。

  • 基準

    固定された基準。

[ソースを表示]

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

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

# merge (その他)=基準

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

例:

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

criteria.merge(other_criteria)

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

key and the key/value pairs correspond to method names/args.

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

パラメーター:

  • その他 基準

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

次の値を返します。

  • 基準

    複製された自己。

[ソースを表示]

321
322
323
324
325
# ファイル 'lib/mongoid/criteria.rb', 行321

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

# merge。 (その他) →基準

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

例:

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

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

パラメーター:

  • その他 条件| ハッシュ

    マージする基準。

次の値を返します。

  • 基準

    マージされた基準。

[ソースを表示]

335
336
337
338
339
340
341
342
343
344
# ファイル 'lib/mongoid/criteria.rb', 行335

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

#noneCriteria

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

例:

条件以外の を返します。

criteria.none

次の値を返します。

  • 基準

    なし 基準。

[ソースを表示]

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

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

#のみ(*args)= Criteria

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

例:

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

Band.only(:name)

パラメーター:

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

    フィールド名。

次の値を返します。

  • 基準

    複製された基準。

[ソースを表示]

375
376
377
378
379
380
381
382
383
384
385
# ファイル 'lib/mongoid/criteria.rb', 行375

デフォルト 制限する(*args)
  args = args.平面
  return 複製 場合 args.空の場合
  場合 (args & フィールド::IDS).空の場合
    args.unshift(:_id)
  end
  場合 klass.継承
    args.プッシュ(klass.弁別子_キー.to_sym)
  end
  スーパー(*args)
end

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

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

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

例:

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

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

パラメーター:

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

    新しい条件を rawモードで配置するかどうか。

  • 入力されました true | false (デフォルトはnil

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

次の値を返します。

  • 基準

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

[ソースを表示]

193
194
195
196
197
198
199
200
201
202
203
204
205
# ファイル 'lib/mongoid/criteria.rb', 行193

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

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

  複製.タップ 行う |条件|
    条件._raw_results = { raw: raw_results, type: 入力されました }
  end
end

#raw_results は? ⇒ true | false

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

次の値を返します。

  • true | false

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

[ソースを表示]

221
222
223
# ファイル 'lib/mongoid/criteria.rb', 行221

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

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

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

例:

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

criteria.read(mode: :primary_preferred)

パラメーター:

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

    モードの設定。

次の値を返します。

  • 基準

    複製された基準。

[ソースを表示]

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

デフォルト 読み取り(価値 = 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

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

[ソースを表示]

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

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

#to_criteriaCriteria

非推奨。

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

例:

基準に変換します。

criteria.to_criteria

次の値を返します。

[ソースを表示]

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

デフォルト to_criteria
  自己
end

#to_procProc

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

例:

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

criteria.to_proc

次の値を返します。

  • Proc

    ラップされた基準。

[ソースを表示]

447
448
449
# ファイル 'lib/mongoid/criteria.rb', 行447

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

(types) ~ 型( criteria

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

例:

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

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

パラメーター:

  • タイプ <String>配列未満

    照合するタイプ。

次の値を返します。

  • 基準

    複製された基準。

[ソースを表示]

461
462
463
# ファイル 'lib/mongoid/criteria.rb', 行461

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

#type Cast_results?true | false

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

次の値を返します。

  • true | false

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

[ソースを表示]

232
233
234
# ファイル 'lib/mongoid/criteria.rb', 行232

デフォルト 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 が指定され、条件が埋め込まれている場合。

[ソースを表示]

482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
# ファイル 'lib/mongoid/criteria.rb', 行482

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

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

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

例:

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

Band.without(:name)

パラメーター:

  • *args (Symbol...)

    フィールド名。

次の値を返します。

  • 基準

    複製された基準。

[ソースを表示]

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

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

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

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

例:

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

criteria.without_options

次の値を返します。

  • 基準

    複製された基準。

[ソースを表示]

508
509
510
511
512
# ファイル 'lib/mongoid/criteria.rb', 行508

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