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

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

Overview

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

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

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

# add_each_to_set (adds) = nil

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

例:

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

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

パラメーター:

  • 追加 ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



31
32
33
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行31

デフォルト 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.



19
20
21
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行19

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

#bit(bits) ⇒ nil

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

例:

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

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

パラメーター:

  • ビット ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



43
44
45
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行43

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

#inc(incs) ⇒ nil

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

例:

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

context.inc(likes: 10)

パラメーター:

  • incs ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



55
56
57
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行55

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

#mul (係数)= nil

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

例:

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

context.mul(likes: 10)

パラメーター:

  • 要因 ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



67
68
69
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行67

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

#pop(pops) ⇒ nil

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

例:

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

context.pop(members: -1)

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

context.pop(members: 1)

パラメーター:

  • pops ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



82
83
84
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行82

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

#pull(pulls) ⇒ nil

注:

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

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

例:

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

context.pull(members: "Dave")

パラメーター:

  • プル ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



96
97
98
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行96

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

#pull_all(pulls) ⇒ nil

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

例:

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

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

パラメーター:

  • プル ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



108
109
110
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行108

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

#push(pushes) ⇒ nil

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

例:

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

context.push(members: "Alan")

パラメーター:

  • プッシュ ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



120
121
122
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行120

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

#push_all (プッシュ)= nil

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

例:

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

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

パラメーター:

  • プッシュ ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



132
133
134
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行132

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

# rename (名前変更) = nil

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

例:

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

context.rename(members: :artists)

パラメーター:

  • renames ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



144
145
146
147
148
149
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行144

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

#set(sets) ⇒ nil

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

例:

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

context.set(name: "Depeche Mode")

パラメーター:

  • セット ハッシュ

    の操作です。

次の値を返します。

  • (nil)

    Nil.



159
160
161
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行159

デフォルト セット(セット)
  表示.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.



219
220
221
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行219

デフォルト 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.



196
197
198
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行196

デフォルト 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.



174
175
176
# ファイル 'lib/mongoid/contextual/アトミック.rb' 行174

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