클래스: Mongoid::Atomic::Modifiers

상속:
해시
  • 객체
모두 표시
다음에 정의됨:
lib/mongoid/atomic/modifiers.rb

개요

이 클래스에는 데이터베이스 에 대한 원자 조작을 지원하기 위한 로직이 포함되어 있습니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#add_to_set(modifications) ⇒ 객체

해시에 원자적 $addToSet 수정자를 추가합니다.

예시:

Add the $addToSet modifiers.

modifiers.add_to_set({ "preference_ids" => [ "one" ] })

매개변수:

  • 수정 (해시)

    세트에 추가하기 수정자입니다.



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/mongoid/atomic/modifiers.rb', line 17

def add_to_set(수정)
  수정.각각의 쌍 do |필드, value|
    만약 add_to_sets.has_key?(필드)
      value. do |val|
        add_to_sets[필드]["$each"].push(val)
      end
    other
      add_to_sets[필드] = { "$each" => value }
    end
  end
end

#pull(modifications) ⇒ 객체

수정자 해시에 모든 수정자 풀을 추가합니다.

예시:

모든 작업 가져오기를 추가합니다.

modifiers.pull({ "addresses" => { "_id" => { "$in" => [ 1, 2, 3 ]}}})

매개변수:

  • 수정 (해시)

    모든 수정자를 가져옵니다.



48
49
50
51
52
53
# File 'lib/mongoid/atomic/modifiers.rb', line 48

def pull(수정)
  수정.각각의 쌍 do |필드, value|
    pulls[필드] = value
    pull_fields[필드.split(".", 2)[0]] = 필드
  end
end

#pull_all(modifications) ⇒ 객체

수정자 해시에 모든 수정자 풀을 추가합니다.

예시:

모든 작업 가져오기를 추가합니다.

modifiers.pull_all({ "addresses" => { "street" => "Bond" }})

매개변수:

  • 수정 (해시)

    모든 수정자를 가져옵니다.



35
36
37
38
39
40
# File 'lib/mongoid/atomic/modifiers.rb', line 35

def pull_all(수정)
  수정.각각의 쌍 do |필드, value|
    add_operation(pull_alls, 필드, value)
    pull_fields[필드.split(".", 2)[0]] = 필드
  end
end

#push(modifications) ⇒ 객체

수정자 해시에 푸시 수정자를 추가합니다.

예시:

푸시 작업을 추가합니다.

modifiers.push({ "addresses" => { "street" => "Bond" }})

매개변수:

  • 수정 (해시)

    The push modifiers.



61
62
63
64
65
66
67
# File 'lib/mongoid/atomic/modifiers.rb', line 61

def push(수정)
  수정.각각의 쌍 do |필드, value|
    push_fields[필드] = 필드
    mods = push_conflict?(필드) ? conflicting_push : 푸시
    add_operation(mods, 필드, { '$each' => 배열.(value) })
  end
end

#set(modifications) ⇒ 객체

수정자 해시에 세트 연산을 추가합니다.

예시:

설정하다 연산을 추가합니다.

modifiers.set({ "title" => "sir" })

매개변수:

  • 수정 (해시)

    The set modifiers.



75
76
77
78
79
80
81
82
# File 'lib/mongoid/atomic/modifiers.rb', line 75

def 세트(수정)
  수정.각각의 쌍 do |필드, value|
    다음 만약 필드 == "_id"
    mods = set_conflict?(필드) ? conflicting_sets : 집합 (Sets)
    add_operation(mods, 필드, value)
    set_fields[필드.split(".", 2)[0]] = 필드
  end
end

#unset(modifications) ⇒ 객체

수정자 해시에 설정되지 않은 연산을 추가합니다.

예시:

설정되지 않은 작업을 추가합니다.

modifiers.unset([ "addresses" ])

매개변수:

  • 수정 (Array<String>)

    설정되지 않은 연결 이름입니다.



90
91
92
93
94
# File 'lib/mongoid/atomic/modifiers.rb', line 90

def Unset(수정)
  수정. do |필드|
    Unsets.update(필드 => true)
  end
end