モジュール: Mongoid::Persistable::Pushable

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
Mongoid::Persistable
定義:
build/mongoid- 8.1 /lib/mongoid/persistable/pushable.rb

Overview

$push および $addToSet 操作の動作を定義します。

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

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

# add_to_set (追加) =ドキュメント

値がまだ配列内に存在しない場合にのみ、配列に単一の値を追加します。

例:

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

document.add_to_set(names: "James", aliases: "Bond")

パラメーター:

  • 追加 ハッシュ

    追加するフィールドと値のペア。

次の値を返します。



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
ファイル 'Build/mongoid- 8.1 /lib/mongoid/persistable/pushable.rb', 行19

デフォルト add_to_set(追加)
  準備_アトミック_操作 行う |ops|
    Process_アトミック_操作(追加) 行う |フィールド, 価値|
      exist = 送信(フィールド) || 属性[フィールド]
      場合 exist.nil?
        属性[フィールド] = []
        # 属性から値を読み取ります。
        https://JIRA.mongodb.org/browse/MONGOID-{0 4874
        exist = 属性[フィールド]
      end
      values = [ 価値 ].平面(1)
      values. 行う |価値|
        exist.プッシュ(価値) ただし、 exist.include?(価値)
      end
      ops[アトミック_attribute_name(フィールド)] = { " $each " => values }
    end
    { "$addToSet" => ops }
  end
end

#push (プッシュ) =ドキュメント

配列に単一の値または複数の値をプッシュします。

例:

配列に単一の値をプッシュします。

document.push(names: "James", aliases: "007")

配列に複数の値をプッシュします。

document.push(names: [ "James", "Bond" ])

パラメーター:

  • プッシュ ハッシュ

    $push 操作。

次の値を返します。



50
51
52
53
54
55
56
57
58
59
60
61
62
63
ファイル 'Build/mongoid- 8.1 /lib/mongoid/persistable/pushable.rb', 行50

デフォルト プッシュ(プッシュ)
  準備_アトミック_操作 行う |ops|
    Process_アトミック_操作(プッシュ) 行う |フィールド, 価値|
      exist = 送信(フィールド) || begin
        属性[フィールド] ||= []
        属性[フィールド]
      end
      values = [ 価値 ].平面(1)
      values.{ |価値| exist.プッシュ(価値) }
      ops[アトミック_attribute_name(フィールド)] = { " $each " => values }
    end
    { " $push " => ops }
  end
end