클래스: 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

개요

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

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

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

상수 요약 접기

ALLOWED_FROM_HASH_METHODS =

Allowed methods for from_hash to prevent arbitrary method execution. Only query-building methods are allowed, not execution or modification methods.

%i[
  모두 all_in all_of 개인정보 정책에 any_in any_of asc ascending
  batch_size between
  데이터 정렬 comment cursor_type
  desc descending
  elem_match eq 이 존재합니다 Extras
  geo_spatial 그룹 gt gte
  hint
   포함
  limit lt lte
  max_distance max_scan max_time_ms merge mod
  ne 가깝다 near_sphere nin no_timeout none none_of 또한 not not_in
  오프셋 제한하기 or 주문 order_by
  프로젝트
  원시 읽기 재정렬
  범위 지정 건너뛰기 슬라이스 스냅샷
  text_search 유형
  범위가 지정되지 않은 Unwind
  위치 with_size with_type 미포함:
].동결
확인 =

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

[]

인스턴스 속성 요약 접기

수정 가능에서 포함된 속성

#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에 포함된 메서드

#eager_load, #includes, #inclusions, #inclusions=, #use_lookup?

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 (클래스)

    모델 클래스입니다.



323
324
325
326
327
328
# 파일 'lib/mongoid/criteria.rb', 323줄

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 (객체...)

    인수.

반환합니다:

  • (객체)

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



619
620
621
622
623
624
625
626
627
628
629
# 파일 'lib/mongoid/criteria.rb', 619줄

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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

An internal helper for getting/setting the "raw" flag on a given criteria object.

반환합니다:

  • (nil | 해시)

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



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

def _raw_results
  @_raw_results
end

#연관 관계객체

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



100
101
102
# 파일 'lib/mongoid/criteria.rb', 100줄

def 연관 관계
  @association
end

#documentsArray<Document>

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

예시:

문서를 가져옵니다.

criteria.documents

반환합니다:



183
184
185
# 파일 'lib/mongoid/criteria.rb', 183줄

def 문서
  @documents ||= []
end

#embedded객체

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



100
101
102
# 파일 'lib/mongoid/criteria.rb', 100줄

def 임베디드
  @embedded
end

#klassObject

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



100
101
102
# 파일 'lib/mongoid/criteria.rb', 100줄

def class
  @klass
end

#parent_document객체

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



100
101
102
# 파일 'lib/mongoid/criteria.rb', 100줄

def parent_document
  @parent_document
end

클래스 메서드 세부 정보

.from_hash(해시) ⇒ 기준

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

This method is deprecated and will be removed in a future release.

Convert the given hash to a criteria. Will iterate over each keys in the hash which must correspond to an allowed method on a criteria object. The hash can include a "klass" key that specifies the model class for the criteria.

예시:

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

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

매개변수:

  • 해시 (해시)

    변환할 해시입니다.

반환합니다:

다음을 발생시킵니다.

  • (ArgumentError)

    If a method is not allowed in from_hash.



81
82
83
84
85
86
87
88
89
90
91
92
# 파일 'lib/mongoid/criteria.rb', 81줄

def from_hash(해시)
  기준 = 기준.신규(해시.삭제(:klass) || 해시.삭제('klass'))
  해시.각각의 쌍 do |메서드, args|
    method_sym = 메서드.to_sym
    하지 않는 한 ALLOWED_FROM_HASH_METHODS.포함?(method_sym)
      올리다 ArgumentError, "Method '#{method}' is not allowed in from_hash"
    end

    기준 = 기준.public_send(method_sym, args)
  end
  기준
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true | false

참고:

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

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

매개변수:

  • 기타 (객체)

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

반환합니다:

  • (true | false)

    객체가 동일한 경우.



110
111
112
113
114
# 파일 'lib/mongoid/criteria.rb', 110줄

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

  항목 == 기타
end

#_enumerable_findObject

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



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

별명 _enumerable_find 찾기

#_findable_find객체

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



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

별명 _findable_find 찾기

#as_json(options = nil) ⇒ String

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

예시:

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

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

매개변수:

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

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

반환합니다:

  • (string)

    JSON string.



173
174
175
# 파일 'lib/mongoid/criteria.rb', 173줄

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

#embedded?true | false

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

예시:

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

criteria.embedded?

반환합니다:

  • (true | false)

    기준이 내장된 경우.



202
203
204
# 파일 'lib/mongoid/criteria.rb', 202줄

def 임베디드?
  !!@embedded
end

#empty_and_chainable?true | false

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

예시:

기준이 없음 기준인가요?

criteria.empty_and_chainable?

반환합니다:

  • (true | false)

    기준이 없음인 경우.



394
395
396
# 파일 'lib/mongoid/criteria.rb', 394줄

def empty_and_chainable?
  !!@none
end

#extract_id객체

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

예시:

ID를 추출합니다.

criteria.extract_id

반환합니다:

  • (객체)

    ID입니다.



272
273
274
# 파일 'lib/mongoid/criteria.rb', 272줄

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

#extras(extras) ⇒ Criteria

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

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

예시:

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

매개변수:

  • Extras (해시)

    예비 운전자 옵션.

반환합니다:

  • (기준)

    복제된 기준입니다.



285
286
287
288
289
# 파일 'lib/mongoid/criteria.rb', 285줄

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

#field_listArray<String>

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

예시:

필드 목록을 가져옵니다.

criteria.field_list

반환합니다:

  • (Array<String>)

    필드.



297
298
299
300
301
302
303
# 파일 'lib/mongoid/criteria.rb', 297줄

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

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

참고:

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

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

If this method is not given a block, it delegates to Findable#find and finds one or many documents for the provided _id values.

If this method is given a block, it delegates to Enumerable#find and returns the first document of those found by the current Criteria object for which the block returns a truthy value.

Note that the "default proc" argument of Enumerable is not specially treated by Mongoid - the decision between delegating to Findable vs Enumerable is made solely based on whether find is passed a block.

예시:

_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 구성 옵션이 진실한 경우입니다.

다음도 참조하세요.



157
158
159
160
161
162
163
# 파일 'lib/mongoid/criteria.rb', 157줄

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

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

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

Find documents by the provided javascript and scope. Uses a $where but is different from Criteria#where in that it will pass a code object to the query instead of a pure string. Safe against Javascript injection attacks.

예시:

JavaScript로 찾기.

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

매개변수:

  • JavaScript (string)

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

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

    코드의 범위입니다.

반환합니다:



553
554
555
556
557
558
559
560
561
# 파일 'lib/mongoid/criteria.rb', 553줄

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

#freezeCriteria

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

예시:

기준을 동결합니다.

criteria.freeze

반환합니다:

  • (기준)

    동결된 기준입니다.



313
314
315
# 파일 'lib/mongoid/criteria.rb', 313줄

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

#merge(기타) ⇒ 기준

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

예시:

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

criteria.merge(other_criteria)

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

key that specifies the model class for the criteria and the key/value
pairs correspond to method names/args.

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

매개변수:

  • 기타 (Criteria | Hash)

    병합할 다른 기준입니다.

반환합니다:

  • (기준)

    복제된 자신입니다.



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

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

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

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

예시:

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

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

매개변수:

  • 기타 (Criteria | Hash)

    병합할 기준입니다.

반환합니다:

  • (기준)

    병합된 기준입니다.



365
366
367
368
369
370
371
372
373
374
375
# 파일 'lib/mongoid/criteria.rb', 365줄

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

#없음기준

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

예시:

없음 기준을 반환합니다.

criteria.none

반환합니다:

  • (기준)

    없음 기준입니다.



384
385
386
# 파일 'lib/mongoid/criteria.rb', 384줄

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

#only(*args) ⇒ Criteria

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

예시:

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

Band.only(:name)

매개변수:

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

    필드 이름입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.



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

def 제한하기(*args)
  args = args.flatten
  반환 복제 만약 args.비어 있나요?

  args.unshift(:_id) 만약 (args & 필드::IDS).비어 있나요?
  args.push(class.판별자_키.to_sym) 만약 class.유전?
  super
end

#raise_eager_error(is_eager_load, klass, relation) ⇒ Object

다음을 발생시킵니다.



115
116
117
118
119
120
121
# 파일 'lib/mongoid/criteria/inclusable.rb', 줄 115

def raise_eager_error(is_eager_load, class, 관계)
  만약 is_eager_load
    올리다 ArgumentError, "Eager loading only supports arguments that are the names of associations on #{klass}"
  end

  올리다 오류::유효하지 않은 포함.신규(class, [ 관계 ])
end

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

Produce a clone of the current criteria object with it's "raw" setting set to the given value. A criteria set to "raw" will return all results as raw hashes. If typed is true, the values in the hashes will be typecast according to the fields that they correspond to.

When "raw" is not set (or if raw_results is false), the criteria will return all results as instantiated Document instances.

예시:

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

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

매개변수:

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

    Whether the new criteria should be placed in "raw" mode or not.

  • typed (true | false) (기본값: nil)

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

반환합니다:

  • (기준)

    복제된 기준 객체.

다음을 발생시킵니다.

  • (ArgumentError)


224
225
226
227
228
229
230
231
232
233
234
# 파일 'lib/mongoid/criteria.rb', 224줄

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

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

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

#raw_results?true | false

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

반환합니다:

  • (true | false)

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



250
251
252
# 파일 'lib/mongoid/criteria.rb', 250줄

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

#읽기(값 = nil) ⇒ 기준

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

예시:

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

criteria.read(mode: :primary_preferred)

매개변수:

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

    모드 기본 설정입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.



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

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)

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



451
452
453
# 파일 'lib/mongoid/criteria.rb', 451줄

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

#to_criteriaCriteria

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

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

예시:

기준으로 변환합니다.

criteria.to_criteria

반환합니다:



464
465
466
# 파일 'lib/mongoid/criteria.rb', 464줄

def to_criteria
  self
end

#to_procproc

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

예시:

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

criteria.to_proc

반환합니다:

  • (Proc)

    래핑된 기준입니다.



475
476
477
# 파일 'lib/mongoid/criteria.rb', 475줄

def to_proc
  -> { self }
end

#type(types) ⇒ 기준

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

예시:

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

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

매개변수:

  • 유형 (Array<String>)

    일치시킬 유형입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.



489
490
491
# 파일 'lib/mongoid/criteria.rb', 489줄

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

#typecast_results?true | false

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

반환합니다:

  • (true | false)

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



261
262
263
# 파일 'lib/mongoid/criteria.rb', 261줄

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 이 제공되면 기준이 포함됩니다.



510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
# 파일 'lib/mongoid/criteria.rb', 510줄

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

  만약 args.분량 == 1
    표현식 = args.first
    올리다 오류::UnsupportedJavascript.신규(class, 표현식) 만약 표현식.is_a?(::문자열) && 임베디드?
  end
  super
end

#without(*args) ⇒ Criteria

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

예시:

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

Band.without(:name)

매개변수:

  • *args (기호...)

    필드 이름입니다.

반환합니다:

  • (기준)

    복제된 기준입니다.



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

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

#without_options기준

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

예시:

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

criteria.without_options

반환합니다:

  • (기준)

    복제된 기준입니다.



533
534
535
536
537
# 파일 'lib/mongoid/criteria.rb', 533줄

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