モジュール: Mongoid::Criteria::Queryable::Selectable

次による拡張機能。
Macroable
定義:
lib/mongoid/criteria/queryable/selectable.rb

Overview

クエリ可能な選択可能な は、データベースからドキュメントを選択する機能があるという点で選択可能です。 選択可能なモジュールは、MongoDB セレクターの構築に関連するすべての機能を選択可能な に提供します。

定数の概要の削減

Line_STRING =

LineString $geometry の 定数。

LineString
POINT =

点 $geometry の定数。

ポリゴン =

多角形 $geometry の定数。

多角形

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

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

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

Macroableに含まれるメソッド

キー

インスタンス属性の詳細

#否定 =オブジェクト

属性が否定の値を返します。



25
26
27
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 25行

デフォルト 否定
  @否定
end

次の式が否定される場合は、# を否定します。 (場合) =オブジェクト



25
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 25行

attr_accessor : 否定, : セレクター

#セレクター=オブジェクト

属性セレクターの値を返します。



25
26
27
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 25行

デフォルト セレクター
  @Selector
end

# selector クエリ セレクター。 (クエリ セレクター) =オブジェクト



25
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 25行

attr_accessor : 否定, : セレクター

クラスメソッドの詳細

フォワードルック → 配列_シンボル<Symbol>

モデルから転送できる選択可能な のメソッドを取得します。

例:

転送可能なメソッドを取得します。

Selectable.forwardables

次の値を返します。

  • 配列<Symbol>

    転送可能なメソッドの名前。



945
946
947
948
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 945行

デフォルト forwardables
  public_instance_methods(false) -
    [ : 否定, :否定=, : 否定, : セレクター, :selector= ]
end

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

# all (*criteria) =選択可能な別名: all_in

$all 基準を追加します。

例:

基準を追加します。

selectable.all(field: [ 1, 2 ])

where クエリで $all を実行します。

selectable.where(:field.all => [ 1, 2 ])

パラメーター:

  • *criteria (ハッシュ... )

    $all 一致のキーと値のペア。

次の値を返します。

  • 選択可能

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



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 38行

デフォルト すべて(*条件)
  場合 条件.空の場合
    return 複製.タップ 行う |クエリ|
      クエリ.reset_strategies!
    end
  end

  条件.inject(複製) 行う |クエリ, 条件|
    場合 条件.nil?
      発生 Errors::CriteriaArgmentRequired, :all
    end

    条件 = explain_条件_to_array_values(条件)

    場合 戦略
      送信(戦略, 条件, " $all ")
    else
      条件.inject(クエリ) 行う |_query, (フィールド, 価値)|
        v = {' $all ' => 価値}
        場合 否定
          v = {' $not ' => v}
        end
        _query.add_field_式(フィールド.to_s, v)
      end
    end
  end.reset_strategies!
end

#および(*criteria) =選択可能な別名: all_ of

$and 基準を追加します。

例:

基準を追加します。

selectable.and({ field: value }, { other: value })

パラメーター:

  • *criteria [ ハッシュ |基準値| 配列 ] が [ ハッシュ |基準値> ]...

    複数のキーと値のペアに一致するか、結果を返すためにすべてが一致する必要がある Criteria オブジェクト。

次の値を返します。



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 78行

デフォルト および(*条件)
  _mongoid_ flatten_arrays(条件).inject(自己.複製) 行う |c, new_s|
    場合 new_s.is_a?(選択可能)
      new_s = new_s.セレクター
    end
    正規化された = _mongoid_expand_keys(new_s)
    正規化された. 行う |k, v|
      k = k.to_s
      場合 c.セレクター[k]
        # k にはすでに条件があります。
        # v が演算子で、既存のすべての条件が次の場合:
        や 演算子もあり、v は既存の条件に存在しないため、
        既存の条件に追加できます。
        # それ以外の場合は $and を使用します。
        場合 v.is_a?(ハッシュ) & &
          v.Length == 1 & &
          (new_k = v.キー.最初に).start_with?('$') & &
          (existing_kv = c.セレクター[k]).is_a?(ハッシュ) & &
          !existing_kv.key?(new_k) & &
          existing_kv.キー.すべて? { |sub_k| sub_k.start_with?('$') }
        次に
          merge_v = c.セレクター[k].merge(v)
          c.セレクター.store(k, merge_v)
        else
          c = c.送信(:__multi__, [k => v], ' $and ')
        end
      else
        c.セレクター.store(k, v)
      end
    end
    c
  end
end

#any_ of (*criteria) =選択可能

引数の論理和を受信者にすでに存在する基準に追加の制約として追加します。

orを使用して、レシーバーを論理和オペランドの 1 つになります。

各引数は、ハッシュ、Criteria オブジェクト、Hash または Criteria オブジェクトの配列、またはネストされた配列にすることができます。 ネストされた配列はフラット化され、任意の深さになります。 配列を渡すことは非推奨です。

例:

両方のフィールドに指定された値が必要な $or 選択を追加します。

selectable.any_of(field: 1, field: 2)

いずれかの値が一致するだけで十分な場合に $or 選択を追加します。

selectable.any_of({field: 1}, {field: 2})

前の例と同じですが、非推奨の 配列ラップ を使用しています。

selectable.any_of([{field: 1}, {field: 2}])

前の例と同じですが、これも非推奨です。

selectable.any_of([{field: 1}], [{field: 2}])

パラメーター:

  • *criteria [ ハッシュ |基準値| 配列 ] が [ ハッシュ |基準値> ]...

    複数のキーと値のペアの一致または Criteria オブジェクト、またはそれらの配列。 配列を渡すことは非推奨です。

次の値を返します。



674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 674行

デフォルト any_of(*条件)
  条件 = _mongoid_ flatten_arrays(条件)
  ケース 条件.Length
  次の場合: 0
    複製
  次の場合: 1
    # 条件が 1 つの場合、任意の _ は と のように動作します。
    注: 条件は クエリ オブジェクトにすることができます。このオブジェクトは メソッドが
    # はサポートしていません。
    自己.および(*条件)
  else
    複数の条件がある場合は、それらをすべて $or で組み合わせます
    # を作成し、その結果を自分自身に追加します。
    explains = 条件.map 行う |criterion|
      場合 criterion.is_a?(選択可能)
        _mongoid_expand_keys(criterion.セレクター)
      else
        ハッシュ[criterion.map 行う |k, v|
          場合 k.is_a?(シンボル)
            [k.to_s, v]
          else
            [k, v]
          end
        end]
      end
    end
    自己.および(' $or ' => explains)
  end
end

間での#(基準)=選択可能

範囲選択を追加します。

例:

単一の範囲内の結果と一致します。

selectable.between(field: 1..2)

複数の範囲間で結果を照合します。

selectable.between(field: 1..2, other: 5..7)

パラメーター:

  • criterion ハッシュ

    複数のキーと範囲のペア。

次の値を返します。

  • 選択可能

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



124
125
126
127
128
129
130
131
132
133
134
135
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 124行

デフォルト (criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, : 間
  end

  選択(criterion) 行う |セレクター, フィールド, 価値|
    セレクター.store(
      フィールド,
      { "$gte" => 価値.min, "$lte" => 価値.最大 }
    )
  end
end

# elem_match (基準) =選択可能

$elemMatch で を選択します。

例:

単一の一致の基準を追加します。

selectable.elem_match(field: { name: "value" })

複数の一致の基準を追加しました。

selectable.elem_match(
  field: { name: "value" },
  other: { name: "value"}
)

where クエリで $elemMatch を実行します。

selectable.where(:field.elem_match => { name: "value" })

パラメーター:

  • criterion ハッシュ

    フィールドと一致のペア。

次の値を返します。

  • 選択可能

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



154
155
156
157
158
159
160
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 154行

デフォルト elem_match(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :elem_match
  end

  と_with_演算子(criterion, " $elemMatch ")
end

# eq (基準) =選択可能

セレクターに $eq 基準を追加します。

例:

$eq 基準を追加します。

selectable.eq(age: 60)

where クエリで $eq を実行します。

selectable.where(:field.eq => 10)

パラメーター:

  • criterion ハッシュ

    確認するフィールドと値のペア。

次の値を返します。

  • 選択可能

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



257
258
259
260
261
262
263
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 257行

デフォルト eq(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :eq
  end

  と_with_演算子(criterion, " $eq ")
end

# exists (基準) =選択可能

$exists 選択を追加します。

例:

単一の選択を追加します。

selectable.exists(field: true)

複数の選択を追加します。

selectable.exists(field: true, other: false)

where クエリで $exists を実行します。

selectable.where(:field.exists => true)

パラメーター:

  • criterion ハッシュ

    フィールドまたはブール値の有無をチェックします。

次の値を返します。

  • 選択可能

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



177
178
179
180
181
182
183
184
185
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 177行

デフォルト exists(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :exists
  end

  typed_overwrite(criterion, " $exists ") 行う |価値|
    Mongoid::ブール値.量用(価値)
  end
end

# geo_spaced (基準) =選択可能

注:

$geoIntersects の有効なジオメトリシェイプは、 : Intersects_line、 : Intersects_point、 : Intersects_polygon のみです。

注:

$geoWithin クエリの有効なオプションは、ジオメトリシェイプ :within_polygon と 演算子 :within_box のみです。

注:

$geoWithin クエリの :within_box 演算子は、最初の引数として左下(緯度)の座標ペアを、2 番目の引数として右上(北極と南極が入っている)の座標ペアを要求します。 重要: 緯度と経度が渡される場合、座標ペアの最初の要素として経度が予想されます。 ソース: www.mongodb.com/ja-jp/docs/manual/reference/operator/query/box /

$geoIntersects または $geoWithin 選択を追加します。 基準を展開するには、例に示すように、シンボル演算子を使用する必要があります。

例:

ラインの地理と交差する基準を追加します。

query.geo_spatial(:location.intersects_line => [[ 1, 10 ], [ 2, 10 ]])

ポイントの地理交差基準を追加します。

query.geo_spatial(:location.intersects_point => [[ 1, 10 ]])

多角形に地理交差基準を追加します。

query.geo_spatial(:location.intersects_polygon => [[ 1, 10 ], [ 2, 10 ], [ 1, 10 ]])

多角形の 基準内の地理を追加します。

query.geo_spatial(:location.within_polygon => [[ 1, 10 ], [ 2, 10 ], [ 1, 10 ]])

ボックスの基準内の地理を追加します。

query.geo_spatial(:location.within_box => [[ 1, 10 ], [ 2, 10 ])

パラメーター:

  • criterion ハッシュ

    基準。

次の値を返します。

  • 選択可能

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



224
225
226
227
228
229
230
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 224行

デフォルト geo_patial(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :geo_patial
  end

  __merge__(criterion)
end

# gt (criteria) =選択可能

セレクターに $gt 基準を追加します。

例:

$gt 基準を追加します。

selectable.gt(age: 60)

where クエリで $gt を実行します。

selectable.where(:field.gt => 10)

パラメーター:

  • criterion ハッシュ

    確認するフィールドと値のペア。

次の値を返します。

  • 選択可能

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



277
278
279
280
281
282
283
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 277行

デフォルト gt(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :gt
  end

  と_with_演算子(criterion, "$gt")
end

# gte (基準) =選択可能

セレクターに $gte 基準を追加します。

例:

$gte 基準を追加します。

selectable.gte(age: 60)

where クエリで $gte を実行します。

selectable.where(:field.gte => 10)

パラメーター:

  • criterion ハッシュ

    確認するフィールドと値のペア。

次の値を返します。

  • 選択可能

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



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

デフォルト gte(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :gte
  end

  と_with_演算子(criterion, "$gte")
end

条件) ====== ======================================================

$in 選択を 選択可能に追加します。

例:

配列に $in 選択を追加します。

selectable.in(age: [ 1, 2, 3 ])

範囲に $in 選択を追加します。

selectable.in(age: 18..24)

where クエリで $in を実行します。

selectable.where(:field.in => [ 1, 2, 3 ])

パラメーター:

  • 条件 ハッシュ

    フィールドと値の基準ペア。

次の値を返します。

  • 選択可能

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



320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 320行

デフォルト in(条件)
  場合 条件.nil?
    発生 Errors::CriteriaArgmentRequired, : で
  end

  条件 = explain_条件_to_array_values(条件)

  場合 戦略
    送信(戦略, 条件, " $in ")
  else
    条件.inject(複製) 行う |クエリ, (フィールド, 価値)|
      v = {'$in' => 価値}
      場合 否定
        v = {' $not ' => v}
      end
      クエリ.add_field_式(フィールド.to_s, v)
    end.reset_strategies!
  end
end

# lt (基準) =選択可能

セレクターに $lt 基準を追加します。

例:

$lt 基準を追加します。

selectable.lt(age: 60)

where クエリで $lt を実行します。

selectable.where(:field.lt => 10)

パラメーター:

  • criterion ハッシュ

    確認するフィールドと値のペア。

次の値を返します。

  • 選択可能

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



353
354
355
356
357
358
359
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 353行

デフォルト lt(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :lt
  end

  と_with_演算子(criterion, " $lt ")
end

#lte (基準)=選択可能

セレクターに $lte 基準を追加します。

例:

$lte 基準を追加します。

selectable.lte(age: 60)

where クエリで $lte を実行します。

selectable.where(:field.lte => 10)

パラメーター:

  • criterion ハッシュ

    確認するフィールドと値のペア。

次の値を返します。

  • 選択可能

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



373
374
375
376
377
378
379
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 373行

デフォルト lte(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :lte
  end

  と_with_演算子(criterion, "$lte")
end

# max_ ユーザー距離(基準) =選択可能

$maxDistance の選択を 選択可能に追加します。

例:

$maxDistance の選択を追加します。

selectable.max_distance(location: 10)

パラメーター:

  • criterion ハッシュ

    フィールドと距離のペア。

次の値を返します。

  • 選択可能

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



390
391
392
393
394
395
396
397
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 390行

デフォルト max_ ユーザー距離(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :max_ ユーザー距離
  end

  #$maxDistance は $near と併用する必要があります
  __add__(criterion, " $maxDistance ")
end

#mod (基準) =選択可能

選択可能に $mod 選択を追加します。

例:

$mod 選択を追加します。

selectable.mod(field: [ 10, 1 ])

where クエリで $mod を実行します。

selectable.where(:field.mod => [ 10, 1 ])

パラメーター:

  • criterion ハッシュ

    フィールドまたは Mod の選択。

次の値を返します。

  • 選択可能

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



410
411
412
413
414
415
416
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 410行

デフォルト mod(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :mod
  end

  と_with_演算子(criterion, "$mod")
end

#(基準) =選択可能別名:除外

選択可能に $ne 選択を追加します。

例:

$ne に対する値のクエリ。

selectable.ne(field: 10)

where クエリで $ne を実行します。

selectable.where(:field.ne => "value")

パラメーター:

  • criterion ハッシュ

    フィールド/値の選択。

次の値を返します。

  • 選択可能

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



430
431
432
433
434
435
436
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 430行

デフォルト ne(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :ne
  end

  と_with_演算子(criterion, "$ne")
end

両方の値が存在しない場合(基準)=選択可能

地理選択に $near 基準を追加します。

例:

$near 選択を追加します。

selectable.near(location: [ 23.1, 12.1 ])

where クエリで $near を実行します。

selectable.where(:field.near => [ 23.2, 12.1 ])

パラメーター:

  • criterion ハッシュ

    フィールドとロケーションのペア。

次の値を返します。

  • 選択可能

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



451
452
453
454
455
456
457
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 451行

デフォルト near(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :near
  end

  と_with_演算子(criterion, " $near ")
end

# near_sphere (基準) =選択可能

地理選択に $nearSphere 基準を追加します。

例:

$nearSphere の選択を追加します。

selectable.near_sphere(location: [ 23.1, 12.1 ])

where クエリで $nearSphere を実行します。

selectable.where(:field.near_sphere => [ 10.11, 3.22 ])

パラメーター:

  • criterion ハッシュ

    フィールドとロケーションのペア。

次の値を返します。

  • 選択可能

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



471
472
473
474
475
476
477
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 471行

デフォルト near_sphere(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :near_sphere
  end

  と_with_演算子(criterion, " $nearSphere ")
end

#否定 = true | false

現在の選択可能な は次の選択を否定しますか。

例:

選択可能な は否定か。

selectable.negating?

次の値を返します。

  • true | false

    選択可能な が否定の場合。



535
536
537
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 535行

デフォルト 否定
  !!否定
end

非 _in と も呼ばれます

$nin 選択を 選択可能に追加します。

例:

配列に $nin 選択を追加します。

selectable.nin(age: [ 1, 2, 3 ])

範囲に $nin 選択を追加します。

selectable.nin(age: 18..24)

where クエリで $nin を実行します。

selectable.where(:field.nin => [ 1, 2, 3 ])

パラメーター:

  • 条件 ハッシュ

    フィールドと値の基準ペア。

次の値を返します。

  • 選択可能

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



494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 494行

デフォルト nin(条件)
  場合 条件.nil?
    発生 Errors::CriteriaArgmentRequired, :nin
  end

  条件 = explain_条件_to_array_values(条件)

  場合 戦略
    送信(戦略, 条件, "$nin")
  else
    条件.inject(複製) 行う |クエリ, (フィールド, 価値)|
      v = {'$nin' => 価値}
      場合 否定
        v = {' $not ' => v}
      end
      クエリ.add_field_式(フィールド.to_s, v)
    end.reset_strategies!
  end
end

#none_ of (*criteria) =選択可能

引数を否定し、引数に一致しないドキュメントのみにクエリを制限します。

例:

単一の条件を除外します。

selectable.none_of(name: /Bob/)

複数の条件を除外します。

selectable.none_of(name: /Bob/, country: "USA")

複数の条件を配列として除外します。

selectable.none_of([{ name: /Bob/ }, { country: "USA" }])

パラメーター:

  • *criteria [ ハッシュ |基準]...

    キーと値のペアが一致するか、または Criteria オブジェクトを否定します。

次の値を返します。



601
602
603
604
605
606
607
608
609
610
611
612
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 601行

デフォルト non_ of(*条件)
  条件 = _mongoid_ flatten_arrays(条件)
  return dup 場合 条件.空の場合

  explains = 条件.map 行う |criterion|
    _mongoid_expand_keys(
        criterion.is_a?(選択可能) ?
          criterion.セレクター : criterion)
  end

  自己.および(' $nor ' => explains)
end

#nor (*criteria) =選択可能

選択可能に $nor の選択を追加します。

例:

$nor 選択を追加します。

selectable.nor(field: 1, field: 2)

パラメーター:

  • *criteria [ ハッシュ |基準値| 配列 ] が [ ハッシュ |基準値> ]...

    複数のキーと値のペアの一致または Criteria オブジェクト。

次の値を返します。



525
526
527
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 525行

デフォルト NULLではない(*条件)
  _mongoid_add_top_level_operation(' $nor ', 条件)
end

NULLではない(*criteria) =選択可能

引数を否定するか、引数が指定されていない場合は次の選択を否定します。

例:

次の選択を否定します。

selectable.not.in(field: [ 1, 2 ])

$not 基準を追加します。

selectable.not(name: /Bob/)

where クエリで $not を実行します。

selectable.where(:field.not => /Bob/)

パラメーター:

  • *criteria [ ハッシュ |基準]...

    キーと値のペアが一致するか、または Criteria オブジェクトを否定します。

次の値を返します。



554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 554行

デフォルト ではない(*条件)
  場合 条件.空の場合
    dup.タップ { |クエリ| クエリ.否定 = true }
  else
    条件.compact.inject(自己.複製) 行う |c, new_s|
      場合 new_s.is_a?(選択可能)
        new_s = new_s.セレクター
      end
      _mongoid_expand_keys(new_s). 行う |k, v|
        k = k.to_s
        場合 c.セレクター[k] || k.start_with?('$')
          c = c.送信(:__multi__, [{' $nor ' => [{k => v}]}], ' $and ')
        else
          場合 v.is_a?(ハッシュ)
            c = c.送信(:__multi__, [{' $nor ' => [{k => v}]}], ' $and ')
          else
            場合 v.is_a?(Regexp)
              否定_演算子 = ' $not '
            else
              否定_演算子 = '$ne'
            end
            c = c.送信(:__override__, {k => v}, 否定_演算子)
          end
        end
      end
      c
    end
  end
end

#または(*criteria) =選択可能

$or を使用して、レシーバー内の既存の基準と指定された引数から論理和を作成します。

この動作(論理和オペランドの 1 つになる受信者)は、ActiveRecord のorの動作と一致します。

any_ofを使用して、引数の論理和を受信側にすでに存在する基準に追加の制約として追加します。

各引数は、ハッシュ、Criteria オブジェクト、Hash または Criteria オブジェクトの配列、またはネストされた配列にすることができます。 ネストされた配列はフラット化され、任意の深さになります。 配列を渡すことは非推奨です。

例:

両方のフィールドに指定された値が必要な $or 選択を追加します。

selectable.or(field: 1, field: 2)

いずれかの値が一致するだけで十分な場合に $or 選択を追加します。

selectable.or({field: 1}, {field: 2})

前の例と同じですが、非推奨の 配列ラップ を使用しています。

selectable.or([{field: 1}, {field: 2}])

前の例と同じですが、これも非推奨です。

selectable.or([{field: 1}], [{field: 2}])

パラメーター:

  • *criteria [ ハッシュ |基準値| 配列 ] が [ ハッシュ |基準値> ]...

    複数のキーと値のペアの一致または Criteria オブジェクト、またはそれらの配列。 配列を渡すことは非推奨です。

次の値を返します。



644
645
646
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 644行

デフォルト or(*条件)
  _mongoid_add_top_level_operation(' $or ', 条件)
end

# text_search (ターム、opts = nil) =選択可能

注:

www.mongodb.com/ja-jp/docs/manual/reference/operator/query/text に従って/ クエリ内で複数のテキスト検索条件を指定することはできません。 Mongoid はそのようなクエリをビルドしますが、実行しようとするとサーバーはエラーを返します。

テキスト検索セレクターを構築します。

例:

テキスト検索セレクターを構築します。

selectable.text_search("testing")

オプションを使用してテキスト検索セレクターを構築します。

selectable.text_search("testing", :$language => "fr")

パラメーター:

  • ターム ( string | Symbol )

    MongoDB が解析し、テキスト インデックスをクエリするために使用するタームの文字列。

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

    テキスト検索オプション。 オプションについては、 MongoDB のドキュメント を参照してください。

次の値を返します。

  • 選択可能

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



776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 776行

デフォルト text_search(ターム, ops = nil)
  場合 ターム.nil?
    発生 Errors::CriteriaArgmentRequired, : ターム
  end

  複製.タップ 行う |クエリ|
    criterion = {'$text' => { ' $search ' => ターム }}
    criterion['$text'].mergeします。(ops) 場合 ops
    場合 クエリ.セレクター['$text']
      https://www.mongodb.com/ja-jp/docs/manual/reference/operator/query/text/ あたり
      複数の $text 式は現在サポートされていません
      #MongoDB サーバーですが、次の代わりにクエリを正しくビルドします:
      # 現在のテキスト検索条件で以前のテキスト検索条件を上書きする
      は 1 つのみを指定します。
      Mongoid.logger.WARN(クエリごとに複数 の $text 式は現在、サーバーではサポートされていません)
      クエリ.セレクター = {' $and ' => [クエリ.セレクター]}.merge(criterion)
    else
      クエリ.セレクター = クエリ.セレクター.merge(criterion)
    end
  end
end

( *criteria) =選択可能

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

例:

標準選択 を追加します。

selectable.where(name: "syd")

JavaScriptの選択を追加します。

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

パラメーター:

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

    標準選択またはJavaScript string 。

次の値を返します。

  • 選択可能

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



812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 812行

デフォルト WHERE(*条件)
  条件.inject(複製) 行う |クエリ, criterion|
    場合 criterion.nil?
      発生 Errors::CriteriaArgmentRequired, :where
    end

    # 基準をインスタンス変数に保存する必要があるため
    # 変更可能なメソッドは、多形オブジェクトの作成方法を認識します。
    #このメソッドは原則として複数の条件を受け入れることに注意してください。
    # では、最初の 1 つだけが @criterion に保存されます。 これ
    は first_or_create などのメソッドがあるため、正常に機能します。
    # は $where に 1 つの基準のみを指定します。
    @criterion = criterion
    場合 criterion.is_a?(文字列)
      js_query(criterion)
    else
      expr_query(criterion)
    end
  end.reset_strategies!
end

# with_size (基準) =選択可能

注:

このメソッドは、列挙型またはシンボルの既存のサイズ設定メソッドと競合しないように #with_size という名前が付けられています。

配列フィールドに $size 選択を追加します。

例:

$size 選択を追加します。

selectable.with_size(field: 5)

where クエリで $size を実行します。

selectable.where(:field.with_size => 10)

パラメーター:

  • criterion ハッシュ

    フィールドとサイズのペアの基準。

次の値を返します。

  • 選択可能

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



718
719
720
721
722
723
724
725
726
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 718行

デフォルト with_size(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :with_size
  end

  typed_overwrite(criterion, " $size ") 行う |価値|
    ::整数.量用(価値)
  end
end

# with_type (基準) =選択可能

注:

vurl.me/PGOUにはすべてのタイプのリストが含まれています。

選択可能に $type 選択を追加します。

例:

$type 選択を追加します。

selectable.with_type(field: 15)

where クエリで $type を実行します。

selectable.where(:field.with_type => 15)

パラメーター:

  • criterion ハッシュ

    フィールドと type のペア。

次の値を返します。

  • 選択可能

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



744
745
746
747
748
749
750
751
752
# ファイル 'lib/mongoid/criteria/queryable/selectable.rb' は、 744行

デフォルト with_type(criterion)
  場合 criterion.nil?
    発生 Errors::CriteriaArgmentRequired, :with_type
  end

  typed_overwrite(criterion, " $type ") 行う |価値|
    ::整数.量用(価値)
  end
end