モジュール: Mongoid::拡張機能::Hash

定義:
build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb

名前空間で定義済み

Modules: クラスメソッド

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

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

#__consolidate__(klass) ⇒ Hash

アトミックな $set の下でハッシュ内のキーと値を統合します。

例:

ハッシュを連結します。

{ name: "Placebo" }.__consolidate__

次の値を返します。



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行37

デフォルト __consolidate__(klass)
  連結 = {}
  each_pair 行う |キー, 価値|
    場合 キー =~ /\$/
      価値.キー. 行う |キー2|
        値2 = 価値[キー2]
        real_key = klass.database_field_name(キー2)

        価値.削除(キー2) 場合 real_key != キー2
        価値[real_key] = (キー == " $rename ") ? 値2.to_s : mongoize_for(キー, klass, real_key, 値2)
      end
      連結[キー] ||= {}
      連結[キー].update(価値)
    else
      連結[" $set "] ||= {}
      連結[" $set "].update(キー => mongoize_for(キー, klass, キー, 価値))
    end
  end
  連結
end

# MongoDB_object_id__ :ハッシュ

ハッシュ内の各値が変換可能な場合、オブジェクト ID に展開します。

例:

ハッシュ値を変換する。

{ field: id }.__evolve_object_id__

次の値を返します。



13
14
15
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行13

デフォルト _v_object_id__
  transform_values!(&: MongoDB_object_id__)
end

# __mongoize_object_id__ =ハッシュ

MongoDB は、変換可能な場合、ハッシュ内の各値をオブジェクト ID に変換します。

例:

ハッシュ値を変換する。

{ field: id }.__mongoize_object_id__

次の値を返します。



23
24
25
26
27
28
29
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行23

デフォルト __mongoize_object_id__
  場合 id = 自己['$oid']
    BSON::ObjectId.from_string(id)
  else
    transform_values!(&:__mongoize_object_id__)
  end
end

# __ Nested__ (string) =オブジェクト

ドット構文でネストされた値を取得します。

例:

ドット構文でネストされた値を取得します。

{ "name" => { "en" => "test" }}.__nested__("name.en")

パラメーター:

  • string ( string )

    ドット構文 string。

次の値を返します。



135
136
137
138
139
140
141
142
143
144
145
146
147
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行135

デフォルト __nested__(string)
  キー = string.分裂(" . ")
  価値 = 自己
  キー. 行う |キー|
    return nil 場合 価値.nil?
    value_for_key = 価値[キー]
    場合 value_for_key.nil? & & キー.to_i.to_s == キー
      value_for_key = 価値[キー.to_i]
    end
    価値 = value_for_key
  end
  価値
end

# _mongoid_unsailable_criteria? = true | falseまたは null_criteria とも呼ばれますか。

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

このハッシュに指定された条件が満たされないことが認識されているかどうかを確認します。つまり、このハッシュを使用してクエリを実行すると常にドキュメントが返されません。

このメソッドは、Mongoid が関連付けクエリを構築するときにのみ Mongoid 自体が使用する条件シェイプのみを取り扱います。 戻り値が false の場合、条件によって空でないドキュメントセットが生成されることを保証するものではありません。ただし、戻り値が true の場合にのみ、条件によって常に空のドキュメントセットが生成されることを保証します。

例:

満たせない条件

{'_id' => {'$in' => []}}._mongoid_unsatisfiable_criteria?
# => true

満たされる可能性のある条件

{'_id' => '123'}._mongoid_unsatisfiable_criteria?
# => false

このメソッドでは処理できない条件

{'foo' => {'$in' => []}}._mongoid_unsatisfiable_criteria?
# => false

次の値を返します。

  • true | false

    ハッシュに既知の満たされない条件が含まれているかどうか。



83
84
85
86
87
88
89
90
91
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行83

デフォルト _mongoid_unsailable_criteria?
  unsailable_criteria = { " _id " => { " $in " => [] }}
  return true 場合 自己 == unsailable_criteria
  return false ただし、 Length == 1 & & キー == %w($and)
  価値 = values.最初に
  価値.is_a?(配列) & & 価値.any? 行う |sub_v|
    sub_v.is_a?(ハッシュ) & & sub_v._mongoid_unsailable_criteria?
  end
end

# delete_id =オブジェクト

ハッシュから ID 値を削除します。

例:

ID 値を削除します。

{}.delete_id

次の値を返します。



112
113
114
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行112

デフォルト delete_id
  削除(" _id ") || 削除(:_id) || 削除(" ID ") || 削除(:id)
end

#tract_id =オブジェクト

プレフィックスとしてアンダースコアが付いているか、記号であるかにかかわらず、このハッシュから ID 属性を取得します。

例:

ID を抽出します。

{ :_id => 1 }.extract_id

次の値を返します。



123
124
125
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行123

デフォルト extra_id
  自己[" _id "] || 自己[:_id] || 自己[" ID "] || 自己[:id]
end

# mongoize ~ハッシュ| nil

オブジェクトを、提供するRuby型からmongoに適した型に変換します。

例:

オブジェクトを Mongoize します。

object.mongoize

次の値を返します。

  • (ハッシュ| nil )

    オブジェクトが mongoized または nil になっています。



156
157
158
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行156

デフォルト mongoize
  ::ハッシュ.mongoize(自己)
end

サイズは変更可能ですか? = true

このオブジェクトのサイズは変更できますか。

例:

ハッシュのサイズは変更可能か?

{}.resizable?

次の値を返します。

  • ( true )

    true。



166
167
168
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行166

デフォルト サイズ変更可能か
  true
end

#to_criteriaCriteria

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

例:

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

{ klass: Band, where: { name: "Depeche Mode" }.to_criteria

次の値を返します。



178
179
180
181
182
183
184
ファイル 'Build/mongoid- 8.1 /lib/mongoid/extentions/hash.rb', 行178

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