モジュール: Mongoid::Contextual::アトミック

定義:
lib/mongoid/contextual/atomic.rb

Overview

Mongoid::Criteria に含まれる混合モジュールで、MongoDB の更新演算子($set、$pull、$inc など)への直接メソッド インターフェースを提供します。 これらの演算子を適用すると、各ドキュメントを Mongoid のメモリにロードすることなく、基準スコープ内のデータベース内のすべてのドキュメントを更新できます。

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

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

# add_each_to_set (adds) = nil

一致するドキュメントに対してアトミックな $addToSet/$each を実行します。

例:

セットに値を追加します。

context.add_each_to_set(members: ["Dave", "Bill"], genres: ["Electro", "Disco"])

パラメーター:

  • 追加 ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



34
35
36
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行34

デフォルト add_each_to_set(追加)
  表示.update_many("$addToSet" => collection_each_operations(追加))
end

#add_to_set(adds) ⇒ nil

一致するドキュメントに対してアトミック $addToSet を実行します。

例:

セットに値を追加します。

context.add_to_set(members: "Dave", genres: "Electro")

パラメーター:

  • 追加 ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



22
23
24
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行22

デフォルト add_to_set(追加)
  表示.update_many("$addToSet" => collection_operations(追加))
end

#bit(bits) ⇒ nil

一致するドキュメントに対してアトミックな $bit 操作を実行します。

例:

ビットごとの opを実行します。

context.bit(likes: { and: 14, or: 4 })

パラメーター:

  • ビット ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



46
47
48
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行46

デフォルト ビット(ビット)
  表示.update_many(" $bit " => collection_operations(ビット))
end

#inc(incs) ⇒ nil

一致するドキュメントに対してアトミックな $inc 操作を実行します。

例:

アトミックなインクリメントを実行します。

context.inc(likes: 10)

パラメーター:

  • incs ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



58
59
60
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行58

デフォルト 含む(incs)
  表示.update_many(" $inc " => collection_operations(incs))
end

#mul (係数)= nil

一致するドキュメントに対してアトミックな $mul 操作を実行します。

例:

アトミック乗算を実行します。

context.mul(likes: 10)

パラメーター:

  • 要因 ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



70
71
72
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行70

デフォルト mul(要因)
  表示.update_many("$mul" => collection_operations(要因))
end

#pop(pops) ⇒ nil

一致するドキュメントに対してアトミックな $pop 操作を実行します。

例:

一致する最初の値を出力します。

context.pop(members: -1)

一致の最後の値をポップします。

context.pop(members: 1)

パラメーター:

  • pops ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



85
86
87
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行85

デフォルト ポップ(pops)
  表示.update_many("$pop" => collection_operations(pops))
end

#pull(pulls) ⇒ nil

注:

式のプルはまだサポートされていません。

一致するドキュメントに対してアトミックな $pull 操作を実行します。

例:

一致から値を取得します。

context.pull(members: "Dave")

パラメーター:

  • プル ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



99
100
101
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行99

デフォルト プル(プル)
  表示.update_many(" $pull " => collection_operations(プル))
end

#pull_all(pulls) ⇒ nil

一致するドキュメントに対してアトミックな $pullAll 操作を実行します。

例:

一致から一致するすべての値を取得します。

context.pull_all(:members, [ "Alan", "Vince" ])

パラメーター:

  • プル ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



111
112
113
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行111

デフォルト pull_all(プル)
  表示.update_many(" $pullAll " => collection_operations(プル))
end

#push(pushes) ⇒ nil

一致するドキュメントに対してアトミックな $push 操作を実行します。

例:

一致するDocsに値をプッシュします。

context.push(members: "Alan")

パラメーター:

  • プッシュ ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



123
124
125
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行123

デフォルト プッシュ(プッシュ)
  表示.update_many(" $push " => collection_operations(プッシュ))
end

#push_all (プッシュ)= nil

一致するドキュメントに対してアトミックな $push/$each 操作を実行します。

例:

一致するDocsに値をプッシュします。

context.push_all(members: [ "Alan", "Fletch" ])

パラメーター:

  • プッシュ ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



135
136
137
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行135

デフォルト push_all(プッシュ)
  表示.update_many(" $push " => collection_each_operations(プッシュ))
end

# rename (名前変更) = nil

一致するドキュメントのフィールドのアトミック $rename を実行します。

例:

一致するドキュメントのフィールドの名前を変更します。

context.rename(members: :artists)

パラメーター:

  • renames ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



147
148
149
150
151
152
153
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行147

デフォルト rename(renames)
  操作 = renames.inject({}) 行う |ops, (old_name, new_name)|
    ops[old_name] = new_name.to_s
    ops
  end
  表示.update_many(" $rename " => collection_operations(操作))
end

#set(sets) ⇒ nil

一致するドキュメントに対してフィールドのアトミック $set を実行します。

例:

一致に フィールド値を設定します。

context.set(name: "Depeche Mode")

パラメーター:

  • セット ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



163
164
165
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行163

デフォルト セット(セット)
  表示.update_many(" $set " => collection_operations(セット))
end

# set_max (フィールド) = nil別名: cluster_ lowerBound

注:

Mongoid::Contextual::Aggregable::Mongo#max が存在するため、このメソッドは #max という名前を付けることができず、実行される MongoDB 操作に対して他の同様のメソッドの名前付け規則が破棄されます。

指定されたフィールドに対してアトミックな $max アップデート操作を実行します。 各フィールドは、最大の [current_value,指定された値] に設定されます。 これは各フィールドが指定された値より小さくないことを確認する効果があります。つまり、指定された値はそのフィールドの有効な最小値です。

例:

ビュー を100より小さくないように設定します。

context.set_max(views: 100)

パラメーター:

  • フィールド ハッシュ

    各 に設定できる最小値を持つフィールド。

次の値を返します。

  • (nil)

    Nil.



223
224
225
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行223

デフォルト set_max(フィールド)
  表示.update_many(" $max " => collection_operations(フィールド))
end

# set_min (フィールド) = nil別名: cluster_upper_round

注:

Mongoid::Contextual::Aggregable::Mongo#min が存在するため、このメソッドは #min と名付けることができず、実行される MongoDB 操作に対して他の同様のメソッドの名前付け規則が破棄されます。

指定されたフィールドに対してアトミックな $min アップデート操作を実行します。 各フィールドは [current_value,指定された値] の最小値に設定されます。 これにより、各フィールドが指定された値より大きくならないようにする効果があります。つまり、指定された値はそのフィールドの有効な最大値です。

例:

ビュー を100以下に設定します。

context.set_min(views: 100)

パラメーター:

  • フィールド ハッシュ

    各 に設定できる最大値を持つフィールド。

次の値を返します。

  • (nil)

    Nil.



200
201
202
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行200

デフォルト set_min(フィールド)
  表示.update_many("$min" => collection_operations(フィールド))
end

#unset(*unsets) ⇒ nil

一致するドキュメントのフィールドに対してアトミックな $unset を実行します。

例:

一致の フィールドの設定を解除します。

context.unset(:name)

パラメーター:

  • *unsets ( [ string | Symbol | Array< string | Symbol>|Hash ]... )

    設定解除するフィールドの名前。 ハッシュが指定されている場合、値が nil または false であっても、値に関係なくそのキーが使用されます。

次の値を返します。

  • (nil)

    Nil.



178
179
180
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行178

デフォルト 設定解除(*設定解除)
  表示.update_many('$unset' => collection_unset_operations(設定解除))
end