クラス: Mongoid::Criteria::Queryable::Key
- 継承:
-
オブジェクト
- オブジェクト
- 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
を使用しますが、 expanded
もblock
も使用しません。 対応する 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 クエリ式に値をマッピングするプロシージャと考えることができます。
インスタンス属性の概要を折りたたむ
-
#block ⇒ Proc
readOnly
値を変換するための任意のブロック。
-
#展開= string
readOnly
MongoDB 展開クエリ演算子。
-
# name = string | Symbol
readOnly
フィールドの名前。
-
#演算子= string
readOnly
MongoDB クエリ演算子。
-
#strategy ⇒ Symbol
readOnly
マージ戦略の名前。
インスタンス メソッドの概要を折りたたむ
-
# == (その他) ==(その他) ========= ================================================================== false (#eql?)
キーは別のオブジェクトと等しくなりますか。
-
# __expr_Part__ (オブジェクト、否定 = false) = ハッシュ
このキーからmongoに渡される未加工のセレクターを取得します。
-
# __sort_option__ ==============================================================
未加工のmongoソート オプションとしてキーを取得します。
-
#ハッシュ= 整数
キーのハッシュ コードを計算します。
-
#初期化(名前, 戦略, 演算子, 展開 = nil, & ブロック) = キー
コンストラクター
新しいキーをインスタンス化します。
-
# to_s = string
キーを string に変換します。
- # transform_value (値、否定 = false) = オブジェクト
コンストラクターの詳細
#初期化(名前, 戦略, 演算子, 展開 = nil, & ブロック) =キー
新しいキーをインスタンス化します。
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)
値を変換するための任意ブロックを返します。
75 76 77 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行75 デフォルト ブロック @ ブロック end |
#展開詳しくは、 string (読み取り専用)
MongoDB 展開クエリ演算子を返します。
69 70 71 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行69 デフォルト @expanded end |
# name = string |シンボル(読み取り専用)
フィールドの名前を返します。
63 64 65 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/criteria/queryable/key.rb', 行63 デフォルト name @name end |
演算子= 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?
キーは別のオブジェクトと等しくなりますか。
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に渡される未加工のセレクターを取得します。
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ソート オプションとしてキーを取得します。
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 に変換します。
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 |