モジュール: Mongoid::Contextual::アトミック
- 定義:
- lib/mongoid/contextual/atomic.rb
Overview
Mongoid::Criteria に含まれる混合モジュールで、MongoDB の更新演算子($set、$pull、$inc など)への直接メソッド インターフェースを提供します。 これらの演算子を適用すると、各ドキュメントを Mongoid のメモリにロードすることなく、基準スコープ内のデータベース内のすべてのドキュメントを更新できます。
インスタンス メソッドの概要を折りたたむ
-
# add_each_to_set (adds) = nil
一致するドキュメントに対してアトミックな $addToSet/$each を実行します。
-
#add_to_set(adds) ⇒ nil
一致するドキュメントに対してアトミック $addToSet を実行します。
-
#bit(bits) ⇒ nil
一致するドキュメントに対してアトミックな $bit 操作を実行します。
-
#inc(incs) ⇒ nil
一致するドキュメントに対してアトミックな $inc 操作を実行します。
-
#mul (係数)= nil
一致するドキュメントに対してアトミックな $mul 操作を実行します。
-
#pop(pops) ⇒ nil
一致するドキュメントに対してアトミックな $pop 操作を実行します。
-
#pull(pulls) ⇒ nil
一致するドキュメントに対してアトミックな $pull 操作を実行します。
-
#pull_all(pulls) ⇒ nil
一致するドキュメントに対してアトミックな $pullAll 操作を実行します。
-
#push(pushes) ⇒ nil
一致するドキュメントに対してアトミックな $push 操作を実行します。
-
#push_all (プッシュ)= nil
一致するドキュメントに対してアトミックな $push/$each 操作を実行します。
-
# rename (名前変更) = nil
一致するドキュメントのフィールドのアトミック $rename を実行します。
-
#set(sets) ⇒ nil
一致するドキュメントに対してフィールドのアトミック $set を実行します。
-
# set_max (フィールド)> nil (値:
指定されたフィールドに対してアトミックな $max アップデート操作を実行します。
-
# set_min (フィールド) = nil (また: #clamp_upper_round)
指定されたフィールドに対してアトミックな $min アップデート操作を実行します。
-
#unset(*unsets) ⇒ nil
一致するドキュメントのフィールドに対してアトミックな $unset を実行します。
インスタンス メソッドの詳細
# add_each_to_set (adds) = nil
一致するドキュメントに対してアトミックな $addToSet/$each を実行します。
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 を実行します。
22 23 24 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行22 デフォルト add_to_set(追加) 表示.update_many("$addToSet" => collection_operations(追加)) end |
#bit(bits) ⇒ nil
一致するドキュメントに対してアトミックな $bit 操作を実行します。
46 47 48 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行46 デフォルト ビット(ビット) 表示.update_many(" $bit " => collection_operations(ビット)) end |
#inc(incs) ⇒ nil
一致するドキュメントに対してアトミックな $inc 操作を実行します。
58 59 60 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行58 デフォルト 含む(incs) 表示.update_many(" $inc " => collection_operations(incs)) end |
#mul (係数)= nil
一致するドキュメントに対してアトミックな $mul 操作を実行します。
70 71 72 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行70 デフォルト mul(要因) 表示.update_many("$mul" => collection_operations(要因)) end |
#pop(pops) ⇒ nil
一致するドキュメントに対してアトミックな $pop 操作を実行します。
85 86 87 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行85 デフォルト ポップ(pops) 表示.update_many("$pop" => collection_operations(pops)) end |
#pull(pulls) ⇒ nil
式のプルはまだサポートされていません。
一致するドキュメントに対してアトミックな $pull 操作を実行します。
99 100 101 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行99 デフォルト プル(プル) 表示.update_many(" $pull " => collection_operations(プル)) end |
#pull_all(pulls) ⇒ nil
一致するドキュメントに対してアトミックな $pullAll 操作を実行します。
111 112 113 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行111 デフォルト pull_all(プル) 表示.update_many(" $pullAll " => collection_operations(プル)) end |
#push(pushes) ⇒ nil
一致するドキュメントに対してアトミックな $push 操作を実行します。
123 124 125 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行123 デフォルト プッシュ(プッシュ) 表示.update_many(" $push " => collection_operations(プッシュ)) end |
#push_all (プッシュ)= nil
一致するドキュメントに対してアトミックな $push/$each 操作を実行します。
135 136 137 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行135 デフォルト push_all(プッシュ) 表示.update_many(" $push " => collection_each_operations(プッシュ)) end |
# rename (名前変更) = nil
一致するドキュメントのフィールドのアトミック $rename を実行します。
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 を実行します。
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,指定された値] に設定されます。 これは各フィールドが指定された値より小さくないことを確認する効果があります。つまり、指定された値はそのフィールドの有効な最小値です。
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,指定された値] の最小値に設定されます。 これにより、各フィールドが指定された値より大きくならないようにする効果があります。つまり、指定された値はそのフィールドの有効な最大値です。
200 201 202 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行200 デフォルト set_min(フィールド) 表示.update_many("$min" => collection_operations(フィールド)) end |
#unset(*unsets) ⇒ nil
一致するドキュメントのフィールドに対してアトミックな $unset を実行します。
178 179 180 |
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行178 デフォルト 設定解除(*設定解除) 表示.update_many('$unset' => collection_unset_operations(設定解除)) end |