클래스: Mongoid::Criteria

상속:
객체
  • 객체
모두 표시
다음을 포함합니다.
Enumerable, Inspectable, Mongoid::Clients::Options, Mongoid::Clients::Sessions, Contextual, Findable, Inclusable, Marshalable, Modifiable, Options, Queryable, Scopable
다음에 정의됨:
lib/mongoid/criteria.rb,
lib/mongoid/criteria/options.rb,
lib/mongoid/criteria/findable.rb,
lib/mongoid/criteria/scopable.rb,
lib/mongoid/criteria/queryable.rb,
lib/mongoid/criteria/inclusable.rb,
lib/mongoid/criteria/modifiable.rb,
lib/mongoid/criteria/permission.rb,
lib/mongoid/criteria/translator.rb,
lib/mongoid/criteria/marshalable.rb,
lib/mongoid/criteria/queryable/key.rb,
lib/mongoid/criteria/queryable/smash.rb,
lib/mongoid/criteria/queryable/options.rb,
lib/mongoid/criteria/queryable/optional.rb,
lib/mongoid/criteria/queryable/ 파이프라인.rb,
lib/mongoid/criteria/queryable/selector.rb,
lib/mongoid/criteria/queryable/storable.rb,
lib/mongoid/criteria/queryable/macroable.rb,
lib/mongoid/criteria/queryable/mergeable.rb,
lib/mongoid/criteria/queryable/aggregable.rb,
lib/mongoid/criteria/queryable/expandable.rb,
lib/mongoid/criteria/queryable/selectable.rb,
lib/mongoid/criteria/queryable/extensions/ 설정하다.rb,
lib/mongoid/criteria/queryable/extensions/date.rb,
lib/mongoid/criteria/queryable/extensions/hash.rb,
lib/mongoid/criteria/queryable/extensions/time.rb,
lib/mongoid/criteria/queryable/extensions/ 배열.rb,
lib/mongoid/criteria/queryable/extensions/ 범위.rb,
lib/mongoid/criteria/queryable/extensions/ 객체.rb,
lib/mongoid/criteria/queryable/extensions/regexp.rb,
lib/mongoid/criteria/queryable/extensions/string.rb,
lib/mongoid/criteria/queryable/extensions/symbol.rb,
lib/mongoid/criteria/queryable/extensions/boolean.rb,
lib/mongoid/criteria/queryable/extensions/numeric.rb,
lib/mongoid/criteria/queryable/extensions/date_time.rb,
lib/mongoid/criteria/queryable/extensions/nil_class.rb,
lib/mongoid/criteria/queryable/extensions/big_decimal.rb,
lib/mongoid/criteria/queryable/extensions/time_with_zone.rb
more...

개요

Criteria 클래스는 Mongoid가 데이터베이스 에서 객체를 조회 하는 데 필요한 핵심 객체 입니다. Ruby 운전자 의 Mongo::Collection 에 전달되는 선택기와 옵션 인수를 기본적으로 설정하는 것은 DSL입니다. Criteria 의 각 메서드는 자체를 반환하며 데이터베이스 에 대해 실행할 수 있는 읽기 가능한 기준을 만들기 위해 연결할 수 있습니다.

네임스페이스 아래에 정의됨

모듈: 찾기 가능, 포함 가능 , 마셜 가능, 수정 가능 , 옵션, 권한, 쿼리 가능 , 범위 가능, 번역기

상수 요약 접기

확인 =

메서드가 누락되었는지 확인하는 데 사용되는 정적 배열 - 한 번만 인스턴스화하면 됩니다.

[]

인스턴스 속성 요약 접기

수정 가능에서 포함된 속성

#create_attrs, #create_attrs 생성 시 문서에 추가할 추가 속성입니다.

Queryable에 포함된 속성

#aliases, #aliases 별칭입니다., #serializers, #serializers 직렬 변환기입니다.

Queryable::Optional에 포함된 속성

#options, #options 쿼리 옵션입니다.

Queryable::Aggregable에 포함된 속성

#aggregating, #aggregating 애그리게이션 여부에 대한 플래그입니다., # 파이프라인, # 파이프라인 집계 파이프라인 입니다.

Queryable::Mergeable에 포함된 속성

#strategy, #strategy 현재 전략의 이름입니다.

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

Mongoid::Clients::Sessions에 포함된 메서드

포함

Mongoid::Clients::Options에 포함된 메서드

# 컬렉션, #collection_name, #mongo_client, #persistence_context, #persistence_context?, #with

Scopable에 포함된 메서드

#apply_default_scope, #apply_scope, #remove_scoping, #scoped, #scoped?, #scoping_options, #scoping_options=, #unscoped, #unscoped?, #with_default_scope

수정 가능에 포함된 메서드

# 빌드, #create, #create!, #create_with, #find_or_create_by, #find_or_create_by!, #find_or_initialize_by, #first_or_create, #first_or_create!, #first_or_initialize

마셜러블에 포함된 메서드

#marshal_dump, #marshal_load

Inclusable에 포함된 메서드

#includes, #inclusions, #inclusions=

Findable에 포함된 메서드

#execute_or_raise, #for_ids, #multiple_from_db

Queryable에 포함된 메서드

#to_mql

Queryable::Optional에 포함된 메서드

#ascending, #batch_size, #collation, #comment, #cursor_type, #descending, forwardables, #hint, #limit, #max_scan, #max_time_ms, #no_timeout, #order_by, #reorder, #skip, #slice, # 스냅샷

Queryable::Macroable에 포함된 메서드

#key

Selectable에 포함된 메서드

#atomic_selector

Queryable::Aggregable에 포함된 메서드

#aggregating?, #group, #project, #unwind

Queryable::Mergeable에 포함된 메서드

#and_with_operator, #intersect, #override, #reset_strategies!, #union

Queryable::Storable에 포함된 메서드

#add_field_expression, #add_logical_operator_expression, #add_one_expression, #add_operator_expression

Contextual에 포함된 메서드

#context, #load_async

생성자 세부 정보

#initialize(klass) ⇒ Criteria

새 기준을 초기화합니다.

예시:

새 기준을 초기화합니다.

Criteria.new(Band)

매개변수:

  • class (클래스)

    모델 클래스입니다.

[소스 보기]

294
295
296
297
298
299
# 파일 'lib/mongoid/criteria.rb', 294줄

def 초기화(class)
  @klass = class
  @embedded = nil
  @none = nil
  class ? super(class.aliased_fields, class.필드, class.관계, class.aliased_associations) : super({}, {}, {}, {})
end

동적 메서드 처리

이 클래스는 메서드 누락 메서드를 통해 동적 메서드를 처리합니다.

#메서드 누락객체 (비공개)

Document 의 for 클래스 메서드에서 Criteria 범위를 함께 연결하는 데 사용됩니다.

예시:

핸들 메서드가 누락되었습니다.

criteria.method_missing(:name)

매개변수:

  • 이름 (기호)

    메서드 이름입니다.

  • *args (객체...)

    인수.

반환합니다:

  • (객체)

    메서드 호출의 결과입니다.

[소스 보기]

593
594
595
596
597
598
599
600
601
602
603
# 파일 'lib/mongoid/criteria.rb', 593줄

ruby2_keywords def Method_missing(이름, *args, &차단)
  만약 class.response_to?(이름)
    class.send(:with_scope, self) do
      class.send(이름, *args, &차단)
    end
  elsif 확인.response_to?(이름)
    반환 항목.send(이름, *args, &차단)
  other
    super
  end
end

인스턴스 속성 세부 정보

#_raw_resultsnil | Hash

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

지정된 기준 객체 에서 '원시' 플래그를 가져오거나 설정하기 위한 내부 헬퍼입니다.

반환합니다:

  • (nil | 해시)

    설정하다 경우, 이는 원시 결과를 반환해야 하는지 여부와 유형 변환해야 하는지 여부를 설명하는 두 개의 키인 :raw 및 :typed가 있는 해시입니다.


215
216
217
# 파일 'lib/mongoid/criteria.rb', 215줄

def _raw_results
  @_raw_results
end

#연관 관계객체

속성 연관 관계의 값을 반환합니다.


68
69
70
# 파일 'lib/mongoid/criteria.rb', 68줄

def 연관 관계
  @association
end

#embedded객체

포함된 속성의 값을 반환합니다.


68
69
70
# 파일 'lib/mongoid/criteria.rb', 68줄

def 임베디드
  @embedded
end

#klassObject

속성 klass의 값을 반환합니다.


68
69
70
# 파일 'lib/mongoid/criteria.rb', 68줄

def class
  @klass
end

#parent_document객체

parent_document 속성의 값을 반환합니다.


68
69
70
# 파일 'lib/mongoid/criteria.rb', 68줄

def parent_document
  @parent_document
end

클래스 메서드 세부 정보

.from_hash(해시) ⇒ 기준

지정된 해시를 기준으로 변환합니다. 기준 객체 의 메서드에 해당해야 하는 해시의 각 키를 반복합니다. 해시에는 'klass' 키도 포함되어야 합니다.

예시:

해시를 기준으로 변환합니다.

Criteria.from_hash({ klass: Band, where: { name: "Depeche Mode" })

매개변수:

  • 해시 (해시)

    변환할 해시입니다.

반환합니다:

[소스 보기]

55
56
57
58
59
60
61
# 파일 'lib/mongoid/criteria.rb', 55줄

def from_hash(해시)
  기준 = 기준.신규(해시.삭제(:klass) || 해시.삭제('klass'))
  해시.각각의 쌍 do |메서드, args|
    기준 = 기준.__send__(메서드, args)
  end
  기준
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true | false

참고:

이렇게 하면 열거형이 전달되는 경우 호출될 때 데이터베이스 가 강제로 로드됩니다.

제공된 Enumerable 또는 Criteria 가 이 Criteria 의 결과 또는 기준 자체와 같으면 true를 반환합니다.

매개변수:

  • 기타 (객체)

    비교할 다른 Enumerable 또는 Criteria 입니다.

반환합니다:

  • (true | false)

    객체가 동일한 경우.

[소스 보기]

78
79
80
81
# 파일 'lib/mongoid/criteria.rb', 78줄

def ==(기타)
  반환 super 만약 기타.response_to?(:selector)
  항목 == 기타
end

#_enumerable_findObject

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

[소스 보기]

26
# 파일 'lib/mongoid/criteria.rb', 26줄

별명 :_enumerable_find :find

#_findable_find객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

[소스 보기]

33
# 파일 'lib/mongoid/criteria.rb', 33줄

별명 :_findable_find :find

#as_json(options = nil) ⇒ String

기준을 JSON으로 올바르게 다시 가져오는 데 필요합니다.

예시:

기준을 JSON 으로 가져옵니다.

Person.where(:title => "Sir").as_json

매개변수:

  • 옵션 (해시) (기본값: nil)

    직렬 변환기로 전달할 옵션입니다.

반환합니다:

  • (string)

    JSON string.

[소스 보기]

140
141
142
# 파일 'lib/mongoid/criteria.rb', 140줄

def as_json(옵션 = nil)
  항목.as_json(옵션)
end

#documentsArray<Document>

내장된 기준에서 문서를 가져옵니다.

예시:

문서를 가져옵니다.

criteria.documents

반환합니다:

[소스 보기]

150
151
152
# 파일 'lib/mongoid/criteria.rb', 150줄

def 문서
  @documents ||= []
end

#documents=(docs) ⇒ Array<Document>

기준에 따라 내장된 문서를 설정합니다.

예시:

문서를 설정합니다.

매개변수:

  • 참고자료 (Array<Document>)

    내장된 문서.

반환합니다:

  • (Array<Document>)

    내장된 문서.

[소스 보기]

161
162
163
# 파일 'lib/mongoid/criteria.rb', 161줄

def 문서=(참고자료)
  @documents = 참고자료
end

#embedded?true | false

내장된 문서의 기준은 무엇인가요?

예시:

내장된 문서의 기준은 무엇인가요?

criteria.embedded?

반환합니다:

  • (true | false)

    기준이 내장된 경우.

[소스 보기]

171
172
173
# 파일 'lib/mongoid/criteria.rb', 171줄

def 임베디드?
  !!@embedded
end

#empty_and_chainable?true | false

기준이 비어 있지만 연결 가능한 기준인가요?

예시:

기준이 없음 기준인가요?

criteria.empty_and_chainable?

반환합니다:

  • (true | false)

    기준이 없음인 경우.

[소스 보기]

363
364
365
# 파일 'lib/mongoid/criteria.rb', 363줄

def empty_and_chainable?
  !!@none
end

#extract_id객체

제공된 기준에서 단일 ID를 추출합니다. $and 쿼리 또는 스트레이트 _id 쿼리에 있을 수 있습니다.

예시:

ID를 추출합니다.

criteria.extract_id

반환합니다:

  • (객체)

    ID입니다.

[소스 보기]

243
244
245
# 파일 'lib/mongoid/criteria.rb', 243줄

def extract_id
  선택기['_id'] || 선택기[:_id] || 선택기['ID'] || 선택기[:id]
end

#extras(extras) ⇒ Criteria

Criteria 에 드라이버에 맞는 형식으로 Ruby 드라이버에 전달할 추가 옵션을 지정하는 기준을 추가합니다.

criteria.extras(:limit => 20, :skip => 40)

예시:

기준에 매개변수를 예비 합니다.

매개변수:

  • Extras (해시)

    예비 운전자 옵션.

반환합니다:

  • (기준)

    복제된 기준입니다.

[소스 보기]

256
257
258
259
260
# 파일 'lib/mongoid/criteria.rb', 256줄

def Extras(Extras)
  crit = 복제
  crit.옵션.병합!(Extras)
  crit
end

#field_listArray<String>

포함된 필드 목록을 가져옵니다.

예시:

필드 목록을 가져옵니다.

criteria.field_list

반환합니다:

  • (Array<String>)

    필드.

[소스 보기]

268
269
270
271
272
273
274
# 파일 'lib/mongoid/criteria.rb', 268줄

def field_list
  만약 옵션[:fields]
    옵션[:fields]..거부{ ||  == class.판별자_키 }
  other
    []
  end
end

#find(*args) {|Object| ... } ⇒ Document | Array<Document> | nil

참고:

각 인수는 개별 ID, ID 배열 또는 중첩 배열일 수 있습니다. 각 배열이 평면화됩니다.

제공된 _id 값이 주어진 경우 하나 이상의 문서를 찾거나, 필요한 경우 로드한 후 애플리케이션 프로세스 공간에서 현재 범위에 있는 문서를 필터링합니다.

이 메서드에 차단 이 주어지지 않으면 Findable#find 에 위임하고 제공된 _id 값에 대해 하나 이상의 문서를 찾습니다.

이 메서드에 차단이 지정되면 Enumerable#find 에 위임하고 현재 Criteria 객체에서 찾은 문서 중 차단 진실 값을 반환하는 첫 번째 문서를 반환합니다.

Enumerable의 ' 기본값 Enumerable ' findFindable 에서 차단 취급하지 않는다는 점에 유의하세요.

예시:

_id 로 문서 를 찾고 Findable#find를 호출합니다.

criteria.find("1234")

블록을 사용하여 일치하는 첫 번째 문서를 찾고 Enumerable#find를 호출합니다.

criteria.find { |item| item.name == "Depeche Mode" }

기본값 Proc을 사용하는 차단 을 사용하여 일치하는 첫 번째 문서 를 찾고 Enumerable#find를 호출합니다.

criteria.find(-> { "Default Band" }) { |item| item.name == "Milwaukee Mode" }

_id 가 제공된 Proc의 문자열화인 문서 를 찾으려고 시도하지만 일반적으로 실패합니다.

enumerator = criteria.find(-> { "Default Band" })

매개변수:

  • *args ([ Object | Array<Object> ]...)

    ID입니다.

  • &block

    선택적 차단을 전달합니다.

수율:

  • (객체)

    각 열거 가능한 요소를 차단 에 양보합니다.

반환합니다:

  • (문서 | 배열<문서> | nil)

    문서 또는 일치하는 문서입니다.

다음을 발생시킵니다.

  • Errors::DocumentNotFound 매개 변수가 _id 값이고 모든 문서가 발견되지 않고 raise_not_found_error Mongoid 구성 옵션이 진실한 경우입니다.

다음도 참조하세요.

[소스 보기]

124
125
126
127
128
129
130
# 파일 'lib/mongoid/criteria.rb', 124줄

def 찾기(*args, &차단)
  만약 block_given?
    _enumerable_find(*args, &차단)
  other
    _findable_find(*args)
  end
end

#for_js(JavaScript, 범위 = {}) ⇒ 기준

더 이상 사용되지 않습니다.

제공된 JavaScript 및 범위로 문서를 찾습니다. $where 를 사용하지만 쿼리 에 순수 대신 코드 객체 를 전달한다는 점에서 Criteria#where string 다릅니다. JavaScript 삽입 공격에 안전합니다.

예시:

JavaScript로 찾기.

Band.for_js("this.name = param", param: "Tool")

매개변수:

  • JavaScript (string)

    $where에서 실행할 JavaScript입니다.

  • 범위 (해시) (기본값: {})

    코드의 범위입니다.

반환합니다:

[소스 보기]

528
529
530
531
532
533
534
535
536
# 파일 'lib/mongoid/criteria.rb', 528줄

def for_js(JavaScript, 범위 = {})
  코드 = 만약 범위.비어 있나요?
    # MongoDB 4.4현재 $where에 대해서는 CodeWithScope가 지원되지 않습니다.
    BSON::코드.신규(JavaScript)
  other
    BSON::CodeWithScope.신규(JavaScript, 범위)
  end
  js_query(코드)
end

#freezeCriteria

기준을 동결할 때는 먼저 컨텍스트를 초기화해야 하며, 그렇지 않으면 반복 시도 시 컨텍스트 설정으로 인해 런타임 오류가 발생합니다.

예시:

기준을 동결합니다.

criteria.freeze

반환합니다:

  • (기준)

    동결된 기준입니다.

[소스 보기]

284
285
286
# 파일 'lib/mongoid/criteria.rb', 284줄

def 동결
  컨텍스트 개인정보 정책에 포함 개인정보 정책에 super
end

#merge(기타) ⇒ 기준

다른 객체 를 이 Criteria 와 병합하고 새 기준을 반환합니다. 다른 객체 는 Criteria 또는 Hash 일 수 있습니다. 이는 체인 범위 상황이 필요할 수 있는 여러 범위를 함께 결합하는 데 사용됩니다.

예시:

기준을 다른 기준과 병합합니다.

criteria.merge(other_criteria)

기준을 해시와 병합합니다. 해시는 다음을 포함해야 합니다.

key and the key/value pairs correspond to method names/args.

criteria.merge({
  klass: Band,
  where: { name: "Depeche Mode" },
  order_by: { name: 1 }
})

매개변수:

  • 기타 (기준)

    병합할 다른 기준입니다.

반환합니다:

  • (기준)

    복제된 자신입니다.

[소스 보기]

321
322
323
324
325
# 파일 'lib/mongoid/criteria.rb', 321줄

def merge(기타)
  crit = 복제
  crit.병합!(기타)
  crit
end

#병합합니다!(기타) ⇒ 기준

다른 기준을 이 기준에 병합합니다.

예시:

다른 기준을 이 기준에 병합합니다.

criteria.merge(Person.where(name: "bob"))

매개변수:

  • 기타 (Criteria | Hash)

    병합할 기준입니다.

반환합니다:

  • (기준)

    병합된 기준입니다.

[소스 보기]

335
336
337
338
339
340
341
342
343
344
# 파일 'lib/mongoid/criteria.rb', 335줄

def 병합!(기타)
  기타 = self.클래스.from_hash(기타) 만약 기타.is_a?(해시)
  선택기.병합!(기타.선택기)
  옵션.병합!(기타.옵션)
  self.문서 = 기타.문서.dup 하지 않는 한 기타.문서.비어 있나요?
  self.scopeing_options = 기타.scopeing_options
  self.포함 = (포함 + 기타.포함).uniq
  self._raw_results = self._raw_results || 기타._raw_results
  self
end

#없음기준

항상 0개의 결과를 포함하고 데이터베이스 에 도달하지 않는 기준을 반환합니다.

예시:

없음 기준을 반환합니다.

criteria.none

반환합니다:

  • (기준)

    없음 기준입니다.

[소스 보기]

353
354
355
# 파일 'lib/mongoid/criteria.rb', 353줄

def none
  @none = true 개인정보 정책에 self
end

#only(*args) ⇒ Criteria

필드에 _type을 포함하도록 재정의되었습니다.

예시:

데이터베이스 에서 반환되는 필드를 제한합니다.

Band.only(:name)

매개변수:

  • *args ([ 기호 | Array<Symbol> ]...)

    필드 이름입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.

[소스 보기]

375
376
377
378
379
380
381
382
383
384
385
# 파일 'lib/mongoid/criteria.rb', 375줄

def 제한하기(*args)
  args = args.flatten
  반환 복제 만약 args.비어 있나요?
  만약 (args & 필드::IDS).비어 있나요?
    args.unshift(:_id)
  end
  만약 class.유전?
    args.push(class.판별자_키.to_sym)
  end
  super(*args)
end

#raw(raw_results = true, typed: nil) ⇒ 기준

'원시' 설정을 지정된 값으로 설정하다 현재 기준 객체 의 복제본을 생성합니다. 기준을 '원시'로 설정하다 모든 결과가 원시 해시로 반환됩니다. 'typed'가 참이면 해시의 값은 해당 필드에 따라 유형 변환됩니다.

'raw'가 설정하다 되지 않은 경우(또는 'raw_results'가 false인 경우) 기준은 모든 결과를 인스턴스화된 문서 인스턴스로 반환합니다.

예시:

쿼리 결과를 원시 해시로 반환합니다.

Person.where(city: 'Boston').raw

매개변수:

  • raw_results (true | false) (기본값: true)

    새 기준을 '원시' 모드 에 배치할지 여부입니다.

  • 입력 (true | false) (기본값: nil)

    원시 결과를 반환하기 전에 타입캐스트해야 하는지 여부입니다. raw_results가 false이면 기본값은 true이고, 그렇지 않으면 false입니다.

반환합니다:

  • (기준)

    복제된 기준 객체.

[소스 보기]

193
194
195
196
197
198
199
200
201
202
203
204
205
# 파일 'lib/mongoid/criteria.rb', 193줄

def 원시(raw_results = true, 입력: nil)
  # 입력된 값의 기본값 raw_results가 false일 때 true이고, false일 때 false입니다.
  # raw_results가 참입니다.
  입력 = !raw_results 만약 입력.nil?

  만약 !입력 && !raw_results
    올리다 ArgumentError, '인스턴스화된 결과는 typecast여야 합니다. '
  end

  복제. do |기준|
    기준._raw_results = { 원시: raw_results, 입력: 입력 }
  end
end

#raw_results?true | false

'이 기준 객체 현재 원시 모드 에 있나요?'라는 질문에 답변하는 술어입니다. (raw 모드 에 대한 설명은 #raw 를 참조하세요.)

반환합니다:

  • (true | false)

    기준이 원시 모드 인지 여부.

[소스 보기]

221
222
223
# 파일 'lib/mongoid/criteria.rb', 221줄

def raw_results?
  _raw_results && _raw_results[:raw]
end

#읽기(값 = nil) ⇒ 기준

기준에 대한 읽기 설정 (read preference) 을 설정합니다.

예시:

읽기 설정( 읽기 설정 (read preference))을 설정합니다.

criteria.read(mode: :primary_preferred)

매개변수:

  • value (해시) (기본값: nil)

    모드 기본 설정입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.

[소스 보기]

395
396
397
398
399
# 파일 'lib/mongoid/criteria.rb', 395줄

def 읽기(value = nil)
  복제. do |기준|
    기준.옵션.병합!(읽기: value)
  end
end

#respond_to?(name, include_private = false) ⇒ true | false

기준이 지정된 메서드에 응답하면 true를 반환합니다.

예시:

기준이 메서드에 응답합니까?

criteria.respond_to?(:each)

매개변수:

  • 이름 (기호)

    Document 에 있는 클래스 메서드의 이름입니다.

  • include_private (true | false) (기본값은 false)

    비공개를 포함할지 여부입니다.

반환합니다:

  • (true | false)

    기준이 메서드에 응답하는 경우.

[소스 보기]

423
424
425
# 파일 'lib/mongoid/criteria.rb', 423줄

def response_to?(이름, include_private = 거짓)
  super || class.response_to?(이름) || 확인.response_to?(이름, include_private)
end

#to_criteriaCriteria

더 이상 사용되지 않습니다.

기준에 병합하려는 객체에 대한 편의를 제공합니다.

예시:

기준으로 변환합니다.

criteria.to_criteria

반환합니다:

[소스 보기]

436
437
438
# 파일 'lib/mongoid/criteria.rb', 436줄

def to_criteria
  self
end

#to_procproc

기준을 절차로 변환합니다.

예시:

기준을 절차로 변환합니다.

criteria.to_proc

반환합니다:

  • (Proc)

    래핑된 기준입니다.

[소스 보기]

447
448
449
# 파일 'lib/mongoid/criteria.rb', 447줄

def to_proc
  ->{ self }
end

#type(types) ⇒ 기준

일치해야 하는 유형 또는 유형의 배열을 지정하는 기준을 Criteria 에 추가합니다.

예시:

특정 모델만 일치시킵니다.

criteria.type('Browser')
criteria.type(['Firefox', 'Browser'])

매개변수:

  • 유형 (Array<String>)

    일치시킬 유형입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.

[소스 보기]

461
462
463
# 파일 'lib/mongoid/criteria.rb', 461줄

def 유형(유형)
  any_in(self.판별자_키.to_sym => 배열(유형))
end

#typecast_results?true | false

이 기준 객체 반환하는 결과를 타입캐스트해야 하나요?라는 질문에 답변하는 술어입니다. (이에 대한 설명은 #raw를 참조하세요.) #raw_results?가 아니면 이 답변 의미가 없습니다. 인스턴스화된 문서 객체가 반환되면 항상 타입캐스트되기 때문에 true입니다.

반환합니다:

  • (true | false)

    기준이 타입캐스트 결과를 반환해야 하는지 여부입니다.

[소스 보기]

232
233
234
# 파일 'lib/mongoid/criteria.rb', 232줄

def typecast_results?
  _raw_results && _raw_results[:typed]
end

#where(*args) ⇒ Criteria

이는 대부분의 MongoDB 쿼리의 일반적인 진입점입니다. 이렇게 하면 표준 필드인 값 선택, 해시 메서드를 사용한 확장 선택, string 이 제공되는 경우 $where 선택이 생성됩니다.

예시:

표준 선택 항목을 추가합니다.

criteria.where(name: "syd")

JavaScript 선택 항목을 추가합니다.

criteria.where("this.name == 'syd'")

매개변수:

  • *args ([ 해시 | string ]...)

    표준 선택 항목 또는 JavaScript string 입니다.

반환합니다:

  • (기준)

    복제된 선택 가능 항목입니다.

다음을 발생시킵니다.

  • (UnsupportedJavascript)

    string 이 제공되면 기준이 포함됩니다.

[소스 보기]

482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
# 파일 'lib/mongoid/criteria.rb', 482줄

def 위치(*args)
  # 역사적으로 이 메서드에는 정확히 하나의 인수가 필요했습니다.
  # https://jira.mongodb.org/browse/MONGOID-4804 기준 또한 다음을 허용합니다.
  # zero arguments.
  # 슈퍼가 호출하는 기본 where 구현 다음을 지원합니다.
  # 인수의 개수에 상관없이, 현재로서는 여러 개의 인수를 허용하지 않습니다.
  이 메서드를 통해 인수를 #개. 이 API는 다음에서 재고할 수 있습니다.
  # future.
  만약 args.분량 > 1
    올리다 ArgumentError, "Criteria#where 에는 0개 또는 1개의 인수가 필요합니다 (#{args.length})"
  end
  만약 args.분량 == 1
    표현식 = args.first
    만약 표현식.is_a?(::문자열) && 임베디드?
      올리다 오류::UnsupportedJavascript.신규(class, 표현식)
    end
  end
  super
end

#without(*args) ⇒ Criteria

필드에서 _id 제외하도록 재정의되었습니다.

예시:

데이터베이스 에서 반환된 필드를 제외합니다.

Band.without(:name)

매개변수:

  • *args (기호...)

    필드 이름입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.

[소스 보기]

409
410
411
412
# 파일 'lib/mongoid/criteria.rb', 409줄

def 미포함:(*args)
  args -= id_fields
  super(*args)
end

#without_options기준

옵션이 없는 이 기준의 버전을 가져오세요.

예시:

옵션 없이 기준을 가져옵니다.

criteria.without_options

반환합니다:

  • (기준)

    복제된 기준입니다.

[소스 보기]

508
509
510
511
512
# 파일 'lib/mongoid/criteria.rb', 508줄

def without_options
  crit = 복제
  crit.옵션.지우기
  crit
end