클래스: Mongoid::Atomic::Modifiers
- 상속:
-
해시
- 객체
- 해시
- Mongoid::Atomic::Modifiers
- 다음에 정의됨:
- lib/mongoid/atomic/modifiers.rb
개요
이 클래스에는 데이터베이스 에 대한 원자 조작을 지원하기 위한 로직이 포함되어 있습니다.
인스턴스 메서드 요약 접기
-
#add_to_set(modifications) ⇒ 객체
해시에 원자적 $addToSet 수정자를 추가합니다.
-
#pull(modifications) ⇒ 객체
수정자 해시에 모든 수정자 풀을 추가합니다.
-
#pull_all(modifications) ⇒ 객체
수정자 해시에 모든 수정자 풀을 추가합니다.
-
#push(modifications) ⇒ 객체
수정자 해시에 푸시 수정자를 추가합니다.
-
#set(modifications) ⇒ 객체
수정자 해시에 세트 연산을 추가합니다.
-
#unset(modifications) ⇒ 객체
수정자 해시에 설정되지 않은 연산을 추가합니다.
인스턴스 메서드 세부 정보
#add_to_set(modifications) ⇒ 객체
해시에 원자적 $addToSet 수정자를 추가합니다.
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/mongoid/atomic/modifiers.rb', line 14 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) ⇒ 객체
수정자 해시에 모든 수정자 풀을 추가합니다.
45 46 47 48 49 50 |
# File 'lib/mongoid/atomic/modifiers.rb', line 45 def pull(수정) 수정.각각의 쌍 do |필드, value| pulls[필드] = value pull_fields[필드.split('.', 2)[0]] = 필드 end end |
#pull_all(modifications) ⇒ 객체
수정자 해시에 모든 수정자 풀을 추가합니다.
32 33 34 35 36 37 |
# File 'lib/mongoid/atomic/modifiers.rb', line 32 def pull_all(수정) 수정.각각의 쌍 do |필드, value| add_operation(pull_alls, 필드, value) pull_fields[필드.split('.', 2)[0]] = 필드 end end |
#push(modifications) ⇒ 객체
수정자 해시에 푸시 수정자를 추가합니다.
58 59 60 61 62 63 64 |
# File 'lib/mongoid/atomic/modifiers.rb', line 58 def push(수정) 수정.각각의 쌍 do |필드, value| push_fields[필드] = 필드 mods = push_conflict?(필드) ? conflicting_push : 푸시 add_operation(mods, 필드, { '$each' => 배열.랩(value) }) end end |
#set(modifications) ⇒ 객체
수정자 해시에 세트 연산을 추가합니다.
72 73 74 75 76 77 78 79 80 |
# File 'lib/mongoid/atomic/modifiers.rb', line 72 def 세트(수정) 수정.각각의 쌍 do |필드, value| 다음 만약 필드 == '_id' mods = set_conflict?(필드) ? conflicting_sets : 집합 (Sets) add_operation(mods, 필드, value) set_fields[필드.split('.', 2)[0]] = 필드 end end |
#unset(modifications) ⇒ 객체
수정자 해시에 설정되지 않은 연산을 추가합니다.
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/mongoid/atomic/modifiers.rb', line 88 def Unset(수정) 수정.각 do |필드| 필드 = 필드.to_s 만약 unset_conflict?(필드) # 충돌하는 $ 설정하다 가 상위 필드 전체를 # 하위 경로), 이미 완료된 전체 현재 상태 씁니다. # 이 미설정을 반영합니다. $unset 건너뛰기 — 중복됩니다. 다음 만약 unset_superseded_by_set?(필드) conflicting_unsets.update(필드 => true) other Unsets.update(필드 => true) end end end |