クラス: Mongoid::Criteria::Queryable::Key

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb

Overview

キー オブジェクトは、MongoDB セレクターを利用してクエリ式を構築するための仕様を表します。

単純なキー値条件は、Key オブジェクトを利用せずに Mongoid によって式ハッシュに直接変換されます。 たとえば、次の条件は次のとおりです。

Foo.where(price: 1)

... は次の単純な式に変換されます。

{price: 1}

より複雑な条件には、 キー オブジェクトが含まれます。 例:

Foo.where(:price.gt => 1)

... によって、キー インスタンスが次のように作成されます。

Key.new(:price, :__override__, '$gt')

このキー インスタンスはoperatorを使用しますが、 expandedblockも使用しません。 対応する MongoDB クエリ式は次のとおりです。

{price: {'$gt' => 1}}

さらに複雑な例として、次の条件があります。

Foo.geo_spatial(:boundary.intersects_point => [1, 10])

この条件を処理すると、キー インスタンスが次のように作成されます。

Key.new(:location, :__override__, '$geoIntersects', '$geometry') do |value|
  { "type" => POINT, "coordinates" => value }
end

... 最終的に次の MongoDB クエリ式が生成されます。

{

boundary: {
  '$geoIntersects' => {
    '$geometry' => {
      type: "Point" ,
      coordinates: [ 1, 10 ]
    }
  }
}

}

キー インスタンスは、指定された値を持つキーの条件を取得するために必要な MongoDB クエリ式に値をマッピングするプロシージャと考えることができます。

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

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

コンストラクターの詳細

#初期化(名前, 戦略, 演算子, 展開 = nil, & ブロック) =キー

新しいキーをインスタンス化します。

例:

キーをインスタンス化します。

Key.new("age", :__override__, "$gt")

ソートのためにキーをインスタンス化します。

Key.new(:field, :__override__, 1)

パラメーター:

  • name ( string | Symbol )

    フィールド名。

  • 戦略 シンボル

    マージ戦略の名前。

  • 演算子 ( string | Integer )

    MongoDB 演算子、またはソート方向( 1または - 1 )。

  • 展開 string (デフォルトはnil

    mongo展開演算子。



112
113
114
115
116
117
118
119
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行112

デフォルト 初期化(name, 戦略, 演算子, 展開 = nil, &ブロック)
  ただし、 演算子.is_a?(文字列) || 演算子.is_a?(整数)
    発生 ArgumentError, " 演算子 は または整数である必要 が ありstring ます :
  end

  @name, @strategy, @ 演算子, @expanded, @ ブロック =
    name, 戦略, 演算子, 展開, ブロック
end

インスタンス属性の詳細

ブロック= Proc (readonly)

値を変換するための任意ブロックを返します。

次の値を返します。

  • Proc

    値を変換するための任意のブロック。



75
76
77
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行75

デフォルト ブロック
  @ ブロック
end

#展開詳しくは、 string (読み取り専用)

MongoDB 展開クエリ演算子を返します。

次の値を返します。

  • ( string )

    MongoDB 展開クエリ演算子。



69
70
71
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行69

デフォルト 展開
  @expanded
end

# name = string |シンボル(読み取り専用)

フィールドの名前を返します。

次の値を返します。

  • ( string | Symbol )

    フィールドの名前。



63
64
65
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行63

デフォルト name
  @name
end

演算子= string (読み取り専用)

MongoDB クエリ演算子を返します。

次の値を返します。

  • ( string )

    MongoDB クエリ演算子。



66
67
68
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行66

デフォルト 演算子
  @ 演算子
end

#戦略シンボル(読み取り専用)

マージ戦略の名前を返します。

次の値を返します。

  • シンボル

    マージ戦略の名前。



72
73
74
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行72

デフォルト 戦略
  @strategy
end

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

# == (その他) ==(その他) ========= ================================================================== false とも呼ばれます: eql?

キーは別のオブジェクトと等しくなりますか。

例:

キーは別のキーと等しくなりますか。

key == other
key.eql? other

パラメーター:

  • その他 オブジェクト

    比較するオブジェクト。

次の値を返します。

  • true | false

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



86
87
88
89
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行86

デフォルト ==(その他)
  return false ただし、 その他.is_a?(キー)
  name == その他.name & & 演算子 == その他.演算子 & & 展開 == その他.展開
end

# __expr_Part__ (オブジェクト、否定 = false) =ハッシュ

このキーからmongoに渡される未加工のセレクターを取得します。

例:

raw セレクターを指定します。

key.__expr_part__(50)

パラメーター:

  • オブジェクト オブジェクト

    含める値。

  • 否定 true | false (デフォルトはfalse

    選択を否定する必要がある場合。

次の値を返します。

  • ハッシュ

    未加工の MongoDB セレクター。



130
131
132
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行130

デフォルト __expr_part__(オブジェクト, 否定 = false)
  { name.to_s => transform_value(オブジェクト, 否定) }
end

# __sort_option__ =ハッシュ別名: __sort_ pair__

未加工のmongoソート オプションとしてキーを取得します。

例:

キーをソートとして取得します。

key.__sort_option__

次の値を返します。

  • ハッシュ

    フィールドと方向のペア。



160
161
162
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行160

デフォルト __sort_option__
  { name => 演算子 }
end

#ハッシュ=整数

キーのハッシュ コードを計算します。

次の値を返します。

  • (整数)

    キーのハッシュ コード。



95
96
97
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行95

デフォルト ハッシュ
  [name, 演算子, 展開].ハッシュ
end

# to_s = string

キーを string に変換します。

例:

キーを string に変換します。

key.to_s

次の値を返します。

  • ( string )

    string としてのキー。



171
172
173
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行171

デフォルト to_s
  @name.to_s
end

# transform_value (値、否定 = false) =オブジェクト



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行134

デフォルト transform_value(価値, 否定 = false)
  場合 ブロック
    expr = ブロック[価値]
  else
    expr = 価値
  end

  場合 展開
    expr = {展開 => expr}
  end

  expr = {演算子 => expr}

  場合 否定 & & 演算子 != ' $not '
    expr = {' $not ' => expr}
  end

  expr
end