モジュール: Mongoid::Peristable::Upserable
- 次のドキュメントに含まれます。
- Mongoid::Persistable
- 定義:
- lib/mongoid/persistable/upsertable.rb
Overview
ドキュメントをアップサートする永続化操作の動作を定義します。
インスタンス メソッドの概要を折りたたむ
-
# upsert (オプション = {}) = true
ドキュメントのアップサートを実行します。
インスタンス メソッドの詳細
# upsert (オプション = {}) = true
ドキュメントのアップサートを実行します。 ドキュメントがデータベースに存在しない場合、 mongoは新しいドキュメントを挿入します。そうでない場合、既存のドキュメントのフィールドは新しい値で上書きされます。
replace オプションが true の場合、指定されていない属性は削除され、false の場合は指定されていない属性が維持されます。 Mongoid 9では、置換オプションはデフォルトで false に設定されています。
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# ファイル 'lib/mongoid/永続的/upsertable.rb' 行36 デフォルト upsert( = {}) prepare_upsert() 行う 場合 [:replace] 場合 [:set_on_insert] 発生 ArgumentError, " :set_on_insert を `replace: true` とともに指定できません end コレクション.find(アトミック_セレクター).replace_one( as_attributes, アップサート: true, セッション: _session) else attrs = { " $set " => as_attributes } attrs["$setOnInsert"] = [:set_on_insert] 場合 [:set_on_insert] コレクション.find(アトミック_セレクター).update_one( attrs, アップサート: true, セッション: _session) end end end |