클래스: Mongoid::Criteria::Queryable::Selector
- 다음에 정의됨:
- lib/mongoid/criteria/queryable/selector.rb
개요
선택기는 입력되는 값을 직렬화하는 방법을 알고 키 이름에 대한 별칭 및 국가 및 언어 설정을 인식하는 특수한 종류의 해시입니다.
인스턴스 속성 요약
Smash에서 상속된 속성
#aliased_associations, #aliased_associations aliased_associations입니다., #aliases, #aliases 별칭입니다., #associations, #associations 연관 관계입니다., #serializers, #serializers 직렬 변환기입니다.
인스턴스 메서드 요약 접기
-
#병합합니다!(기타) ⇒ 선택기
다른 선택기를 이 선택기에 병합합니다.
-
# (키, 값) 저장 ⇒ 객체 (동의어: #[]=)
제공된 키의 선택기에 값을 저장합니다.
-
#to_pipeline ⇒ Array<Hash>
선택기를 집계 파이프라인 항목으로 변환합니다.
Smash에서 상속된 메서드
#[], #__deep_copy__, #initialize
생성자 세부 정보
이 클래스는 Mongoid::Criteria::Queryable::Smash의 생성자를 상속합니다.
인스턴스 메서드 세부 정보
#병합합니다!(기타) ⇒ 선택기
다른 선택기를 이 선택기에 병합합니다.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# 파일 'lib/mongoid/criteria/queryable/selector.rb', 줄 20 def 병합!(기타) 기타.각각의 쌍 do |키, value| 만약 value.is_a?(해시) && self[키.to_s].is_a?(해시) value = self[키.to_s].merge(value) do |_key, old_val, new_val| case _key.to_s when '$in' new_val & old_val when '$nin' (old_val + new_val).uniq other new_val end end end 만약 multi_selection?(키) value = (self[키.to_s] || []).concat(value) end 저장(키, value) end end |
# (키, 값) 저장 ⇒ 객체 []=
제공된 키의 선택기에 값을 저장합니다. 이 단계에서는 선택기가 필요한 모든 직렬화 및 현지화를 처리하다 합니다.
51 52 53 54 55 56 57 58 59 60 |
# 파일 'lib/mongoid/criteria/queryable/selector.rb', 줄 51 def 저장(키, value) 이름, 직렬 변환기 = storage_pair(키) 만약 multi_selection?(이름) store_name = 이름 store_value = evolve_multi(value) other store_name, store_value = store_creds(이름, 직렬 변환기, value) end super(store_name, store_value) end |
#to_pipeline ⇒ Array<Hash>
선택기를 집계 파이프라인 항목으로 변환합니다.
69 70 71 72 73 |
# 파일 'lib/mongoid/criteria/queryable/selector.rb', 줄 69 def to_pipeline 파이프라인 = [] 파이프라인.push({ "$match" => self }) 하지 않는 한 비어 있나요? 파이프라인 end |