クラス: Mongoid::Criteria::Queryable::Selector

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

Overview

セレクターは、取り込まれる値を直列化する方法、およびキー名のエイリアスとロケールを認識する特殊な種類のハッシュです。

インスタンス属性の概要

Smashから継承された属性

#allased_as#エイリアス#エイリアス エイリアス。 、 の関連付けの関連付け#serializer#serializer シリアライザー。

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

Smashから継承されたメソッド

#[]_deep_ copy__ 、# initialize

コンストラクターの詳細

このクラスは、 Mongoid::Criteria::Queryable::Smashからコンストラクターを継承します。

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

# merge。 (その他) =セレクター

別のセレクターをこのセレクターにマージします。

例:

別のセレクターで をマージします。

selector.merge!(name: "test")

パラメーター:

  • その他 ハッシュ |セレクター

    マージするオブジェクト。

次の値を返します。



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ファイル 'lib/mongoid/criteria/queryable/selector.rb' は、 20行

デフォルト mergeします。(その他)
  その他.each_pair 行う |キー, 価値|
    場合 価値.is_a?(ハッシュ) & & 自己[キー.to_s].is_a?(ハッシュ)
      価値 = 自己[キー.to_s].merge(価値) 行う |_key, old_val, new_val|
        ケース _key.to_s
        次の場合: '$in'
          new_val & old_val
        次の場合: '$nin'
          (old_val + new_val).一意
        else
          new_val
        end
      end
    end
    場合 multi_Selection?(キー)
      価値 = (自己[キー.to_s] || []).concat(価値)
    end
    store(キー, 価値)
  end
end

#store (キー、値)==オブジェクト: []=

指定されたキーの セレクター に値を保存します。 セレクターは、必要な直列化とローカライズをすべて処理します。

例:

セレクターに値を保存します。

selector.store(:key, "testing")

パラメーター:

  • キー ( string | Symbol )

    属性の名前。

  • 価値 オブジェクト

    追加する値。

次の値を返します。

  • オブジェクト

    保存されたオブジェクト。



51
52
53
54
55
56
57
58
59
60
# ファイル 'lib/mongoid/criteria/queryable/selector.rb' は、 51行

デフォルト store(キー, 価値)
  name, シリアライザー = ストレージ_ペア(キー)
  場合 multi_Selection?(name)
    Store_name = name
    store_value = evolve_multi(価値)
  else
    Store_name, store_value = store_creds(name, シリアライザー, 価値)
  end
  スーパー(Store_name, store_value)
end

#to_pipelineArray<Hash>

セレクターを 集計パイプライン エントリに変換する

例:

セレクターをパイプラインに変換する。

selector.to_pipeline

次の値を返します。

  • <Hash>配列 )

    セレクターのパイプライン エントリ。



69
70
71
72
73
# ファイル 'lib/mongoid/criteria/queryable/selector.rb' は、 69行

デフォルト to_ pipeline
  パイプライン = []
  パイプライン.プッシュ({ " $match " => 自己 }) ただし、 空の場合
  パイプライン
end