モジュール: Mongoid::Peristable::Upserable

次のドキュメントに含まれます。
Mongoid::Persistable
定義:
build/mongoid- 8.1 /lib/mongoid/persistable/upsertable.rb

Overview

ドキュメントをアップサートする永続化操作の動作を定義します。

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

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

# upsert (オプション = {}) = true

ドキュメントのアップサートを実行します。 ドキュメントがデータベースに存在しない場合、 mongoは新しいドキュメントを挿入します。そうでない場合、既存のドキュメントのフィールドは新しい値で上書きされます。

replace オプションが true の場合、指定されていない属性は削除され、false の場合は指定されていない属性が維持されます。 置換オプションは、Mongoid 8.1以前ではデフォルトで true に設定されています。 Mongoid 9でデフォルトは false に切り替えられます。

例:

ドキュメントをアップサートします。

document.upsert

置換せずにドキュメントをアップサートします。

document.upsert(replace: false)

パラメーター:

  • options ハッシュ (デフォルトは{}です)

    検証オプション。

オプション ハッシュ( options ):

  • :validate true | false

    検証するかどうか。

  • :replace true | false

    アップサート時にドキュメントを置き換えるかどうか。

次の値を返します。

  • ( true )

    True。



30
31
32
33
34
35
36
37
38
39
40
ファイル 'Build/mongoid- 8.1 /lib/mongoid/persistable/upsertable.rb ', 行30

デフォルト upsert(options = {})
  prepare_upsert(options) 行う
    場合 options.fetch(:replace, true)
      コレクション.find(アトミック_セレクター).replace_one(
        as_attributes, アップサート: true, セッション: _session)
    else
      コレクション.find(アトミック_セレクター).update_one(
        { " $set " => as_attributes }, アップサート: true, セッション: _session)
    end
  end
end