클래스: 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 수정자를 추가합니다.
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) ⇒ 객체
수정자 해시에 모든 수정자 풀을 추가합니다.
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) ⇒ 객체
수정자 해시에 모든 수정자 풀을 추가합니다.
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) ⇒ 객체
수정자 해시에 푸시 수정자를 추가합니다.
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) ⇒ 객체
수정자 해시에 세트 연산을 추가합니다.
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) ⇒ 객체
수정자 해시에 설정되지 않은 연산을 추가합니다.
90 91 92 93 94 |
# File 'lib/mongoid/atomic/modifiers.rb', line 90 def Unset(수정) 수정.각 do |필드| Unsets.update(필드 => true) end end |