클래스: Mongoid::Criteria::Queryable::Selector

상속:
스매시
  • 객체
모두 표시
다음에 정의됨:
lib/mongoid/criteria/queryable/selector.rb

개요

선택기는 입력되는 값을 직렬화하는 방법을 알고 키 이름에 대한 별칭 및 국가 및 언어 설정을 인식하는 특수한 종류의 해시입니다.

인스턴스 속성 요약

Smash에서 상속된 속성

#aliased_associations, #aliased_associations aliased_associations입니다., #aliases, #aliases 별칭입니다., #associations, #associations 연관 관계입니다., #serializers, #serializers 직렬 변환기입니다.

인스턴스 메서드 요약 접기

Smash에서 상속된 메서드

#[], #__deep_copy__, #initialize

생성자 세부 정보

이 클래스는 Mongoid::Criteria::Queryable::Smash의 생성자를 상속합니다.

인스턴스 메서드 세부 정보

#병합합니다!(기타) ⇒ 선택기

다른 선택기를 이 선택기에 병합합니다.

예시:

다른 선택기에서 병합합니다.

selector.merge!(name: "test")

매개변수:

  • 기타 (해시 | 선택기)

    병합할 객체입니다.

반환합니다:



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

# (키, 값) 저장객체 []=

제공된 키의 선택기에 값을 저장합니다. 이 단계에서는 선택기가 필요한 모든 직렬화 및 현지화를 처리하다 합니다.

예시:

선택기에 값을 저장합니다.

selector.store(:key, "testing")

매개변수:

  • (string | 기호)

    속성의 이름입니다.

  • value (객체)

    추가할 값입니다.

반환합니다:

  • (객체)

    저장된 객체입니다.



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_pipelineArray<Hash>

선택기를 집계 파이프라인 항목으로 변환합니다.

예시:

선택기를 파이프라인 으로 변환합니다.

selector.to_pipeline

반환합니다:

  • (Array<Hash>)

    선택기의 파이프라인 항목입니다.



69
70
71
72
73
# 파일 'lib/mongoid/criteria/queryable/selector.rb', 줄 69

def to_pipeline
  파이프라인 = []
  파이프라인.push({ "$match" => self }) 하지 않는 한 비어 있나요?
  파이프라인
end