클래스: Mongoid::Criteria
- 상속:
-
객체
- 객체
- 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
의 각 메서드는 자체를 반환하며 데이터베이스 에 대해 실행할 수 있는 읽기 가능한 기준을 만들기 위해 연결할 수 있습니다.
네임스페이스 아래에 정의됨
모듈: 찾기 가능, 포함 가능 , 마셜 가능, 수정 가능 , 옵션, 권한, 쿼리 가능 , 범위 가능, 번역기
상수 요약 접기
- 확인 =
메서드가 누락되었는지 확인하는 데 사용되는 정적 배열 - 한 번만 인스턴스화하면 됩니다.
[]
인스턴스 속성 요약 접기
-
#_raw_results ⇒ nil | Hash
비공개
지정된 기준 객체 에서 '원시' 플래그를 가져오거나 설정하기 위한 내부 헬퍼입니다.
-
#연관 관계 ⇒ 객체
속성 연관 관계의 값을 반환합니다.
-
#embedded ⇒ 객체
포함된 속성의 값을 반환합니다.
-
#klass ⇒ 객체
속성 klass의 값을 반환합니다.
-
#parent_document ⇒ 객체
parent_document 속성의 값을 반환합니다.
수정 가능에서 포함된 속성
#create_attrs, #create_attrs 생성 시 문서에 추가할 추가 속성입니다.
Queryable에 포함된 속성
#aliases, #aliases 별칭입니다., #serializers, #serializers 직렬 변환기입니다.
Queryable::Optional에 포함된 속성
Queryable::Aggregable에 포함된 속성
#aggregating, #aggregating 애그리게이션 여부에 대한 플래그입니다., # 파이프라인, # 파이프라인 집계 파이프라인 입니다.
Queryable::Mergeable에 포함된 속성
#strategy, #strategy 현재 전략의 이름입니다.
클래스 메서드 요약 접기
-
.from_hash(해시) ⇒ 기준
지정된 해시를 기준으로 변환합니다.
인스턴스 메서드 요약 접기
-
#==(기타) ⇒ true | false
제공된
Enumerable
또는Criteria
가 이Criteria
의 결과 또는 기준 자체와 같으면 true를 반환합니다. - #_enumerable_find ⇒ Object 비공개
- #_findable_find ⇒ 객체 비공개
-
#as_json(options = nil) ⇒ String
기준을 JSON 으로 올바르게 다시 가져오는 데 필요합니다.
-
#문서 ⇒ Array<Document>
내장된 기준에서 문서를 가져옵니다.
-
#문서=(Docs) ⇒ Array<Document>
기준에 따라 내장된 문서를 설정합니다.
-
#embedded? ⇒ true | false
내장된 문서의 기준은 무엇입니까?
-
#empty_and_chainable? ⇒ true | false
기준이 비어 있지만 연결 가능한 기준인가요?
-
#extract_id ⇒ 객체
제공된 기준에서 단일 ID를 추출합니다.
-
#extras(extras) ⇒ Criteria
Criteria
에 드라이버에 맞는 형식으로 Ruby 드라이버에 전달할 추가 옵션을 지정하는 기준을 추가합니다. -
#field_list ⇒ Array<String>
포함된 필드 목록을 가져옵니다.
-
#find(*args) {|Object| ... } ⇒ 문서 | Array<Document> | nil
제공된 _id 값이 주어진 경우 하나 이상의 문서를 찾거나, 필요한 경우 로드한 후 애플리케이션 프로세스 공간에서 현재 범위에 있는 문서를 필터링합니다.
- #for_js(JavaScript, 범위 = {}) ⇒ 기준 사용 중단 더 이상 사용되지 않습니다.
-
#freeze ⇒ Criteria
기준을 동결할 때는 먼저 컨텍스트를 초기화해야 하며, 그렇지 않으면 반복 시도 시 컨텍스트 설정으로 인해 런타임 오류가 발생합니다.
-
#initialize(klass) ⇒ Criteria
생성자
새 기준을 초기화합니다.
-
#merge(기타) ⇒ 기준
다른 객체 를 이
Criteria
와 병합하고 새 기준을 반환합니다. -
#병합합니다!(기타) ⇒ 기준
다른 기준을 이 기준에 병합합니다.
-
#none ⇒ Criteria
항상 0개의 결과를 포함하고 데이터베이스 에 도달하지 않는 기준을 반환합니다.
-
#only(*args) ⇒ Criteria
필드에 _type을 포함하도록 재정의되었습니다.
-
#raw(raw_results = true, typed: nil) ⇒ 기준
'원시' 설정을 지정된 값으로 설정하다 현재 기준 객체 의 복제본을 생성합니다.
-
#raw_results? ⇒ true | false
'이 기준 객체 현재 원시 모드 에 있나요?'라는 질문에 답변하는 술어입니다. (raw 모드 에 대한 설명은 #raw를 참조하세요.)
-
#읽기(값 = nil) ⇒ 기준
기준에 대한 읽기 설정 (read preference) 을 설정합니다.
-
#respond_to?(name, include_private = false) ⇒ true | false
기준이 지정된 메서드에 응답하면 true를 반환합니다.
- #to_criteria ⇒ Criteria 사용 중단 더 이상 사용되지 않습니다.
-
#to_proc ⇒ Proc
기준을 절차로 변환합니다.
-
#type(types) ⇒ 기준
일치해야 하는 유형 또는 유형의 배열을 지정하는 기준을
Criteria
에 추가합니다. -
#typecast_results? ⇒ true | false
이 기준 객체 반환하는 결과를 타입캐스트해야 하나요?라는 질문에 답변하는 술어입니다. (이에 대한 설명은 #raw를 참조하세요.) #raw_results?가 아니면 이 답변 의미가 없습니다. 인스턴스화된 문서 객체가 반환되면 항상 타입캐스트되기 때문에 true입니다.
-
#where(*args) ⇒ Criteria
이는 대부분의 MongoDB 쿼리의 일반적인 진입 점 입니다.
-
#without(*args) ⇒ Criteria
필드에서 _id 제외하도록 재정의되었습니다.
-
#without_options ⇒ 기준
옵션이 없는 이 기준의 버전을 가져오세요.
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
마셜러블에 포함된 메서드
Inclusable에 포함된 메서드
#includes, #inclusions, #inclusions=
Findable에 포함된 메서드
#execute_or_raise, #for_ids, #multiple_from_db
Queryable에 포함된 메서드
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에 포함된 메서드
Selectable에 포함된 메서드
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에 포함된 메서드
생성자 세부 정보
동적 메서드 처리
이 클래스는 메서드 누락 메서드를 통해 동적 메서드를 처리합니다.
#메서드 누락 ⇒ 객체 (비공개)
Document
의 for 클래스 메서드에서 Criteria
범위를 함께 연결하는 데 사용됩니다.
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_results ⇒ nil | Hash
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 기준 객체 에서 '원시' 플래그를 가져오거나 설정하기 위한 내부 헬퍼입니다.
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 |
#klass ⇒ Object
속성 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 |
클래스 메서드 세부 정보
인스턴스 메서드 세부 정보
#==(기타) ⇒ true | false
이렇게 하면 열거형이 전달되는 경우 호출될 때 데이터베이스 가 강제로 로드됩니다.
제공된 Enumerable
또는 Criteria
가 이 Criteria
의 결과 또는 기준 자체와 같으면 true를 반환합니다.
78 79 80 81 |
# 파일 'lib/mongoid/criteria.rb', 78줄 def ==(기타) 반환 super 만약 기타.response_to?(:selector) 항목 == 기타 end |
#_enumerable_find ⇒ Object
이 메서드는 비공개 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으로 올바르게 다시 가져오는 데 필요합니다.
140 141 142 |
# 파일 'lib/mongoid/criteria.rb', 140줄 def as_json( = nil) 항목.as_json() end |
#documents ⇒ Array<Document>
내장된 기준에서 문서를 가져옵니다.
150 151 152 |
# 파일 'lib/mongoid/criteria.rb', 150줄 def 문서 @documents ||= [] end |
#documents=(docs) ⇒ Array<Document>
기준에 따라 내장된 문서를 설정합니다.
161 162 163 |
# 파일 'lib/mongoid/criteria.rb', 161줄 def 문서=(참고자료) @documents = 참고자료 end |
#embedded? ⇒ true | false
내장된 문서의 기준은 무엇인가요?
171 172 173 |
# 파일 'lib/mongoid/criteria.rb', 171줄 def !!@embedded end |
#empty_and_chainable? ⇒ true | false
기준이 비어 있지만 연결 가능한 기준인가요?
363 364 365 |
# 파일 'lib/mongoid/criteria.rb', 363줄 def empty_and_chainable? !!@none end |
#extract_id ⇒ 객체
제공된 기준에서 단일 ID를 추출합니다. $and 쿼리 또는 스트레이트 _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)
256 257 258 259 260 |
# 파일 'lib/mongoid/criteria.rb', 256줄 def Extras(Extras) crit = 복제 crit..병합!(Extras) crit end |
#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
' find
는 Findable
에서 차단 취급하지 않는다는 점에 유의하세요.
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 삽입 공격에 안전합니다.
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 |
#freeze ⇒ Criteria
기준을 동결할 때는 먼저 컨텍스트를 초기화해야 하며, 그렇지 않으면 반복 시도 시 컨텍스트 설정으로 인해 런타임 오류가 발생합니다.
284 285 286 |
# 파일 'lib/mongoid/criteria.rb', 284줄 def 동결 컨텍스트 개인정보 정책에 포함 개인정보 정책에 super end |
#merge(기타) ⇒ 기준
다른 객체 를 이 Criteria
와 병합하고 새 기준을 반환합니다. 다른 객체 는 Criteria
또는 Hash
일 수 있습니다. 이는 체인 범위 상황이 필요할 수 있는 여러 범위를 함께 결합하는 데 사용됩니다.
321 322 323 324 325 |
# 파일 'lib/mongoid/criteria.rb', 321줄 def merge(기타) crit = 복제 crit.병합!(기타) crit end |
#병합합니다!(기타) ⇒ 기준
다른 기준을 이 기준에 병합합니다.
335 336 337 338 339 340 341 342 343 344 |
# 파일 'lib/mongoid/criteria.rb', 335줄 def 병합!(기타) 기타 = self.클래스.from_hash(기타) 만약 기타.is_a?(해시) 선택기.병합!(기타.선택기) .병합!(기타.) self.문서 = 기타.문서.dup 하지 않는 한 기타.문서.비어 있나요? self. = 기타. self.포함 = (포함 + 기타.포함).uniq self._raw_results = self._raw_results || 기타._raw_results self end |
#없음 ⇒ 기준
항상 0개의 결과를 포함하고 데이터베이스 에 도달하지 않는 기준을 반환합니다.
353 354 355 |
# 파일 'lib/mongoid/criteria.rb', 353줄 def none @none = true 개인정보 정책에 self end |
#only(*args) ⇒ Criteria
필드에 _type을 포함하도록 재정의되었습니다.
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인 경우) 기준은 모든 결과를 인스턴스화된 문서 인스턴스로 반환합니다.
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 를 참조하세요.)
221 222 223 |
# 파일 'lib/mongoid/criteria.rb', 221줄 def raw_results? _raw_results && _raw_results[:raw] end |
#읽기(값 = nil) ⇒ 기준
기준에 대한 읽기 설정 (read preference) 을 설정합니다.
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를 반환합니다.
423 424 425 |
# 파일 'lib/mongoid/criteria.rb', 423줄 def response_to?(이름, include_private = 거짓) super || class.response_to?(이름) || 확인.response_to?(이름, include_private) end |
#to_criteria ⇒ Criteria
기준에 병합하려는 객체에 대한 편의를 제공합니다.
436 437 438 |
# 파일 'lib/mongoid/criteria.rb', 436줄 def to_criteria self end |
#to_proc ⇒ proc
기준을 절차로 변환합니다.
447 448 449 |
# 파일 'lib/mongoid/criteria.rb', 447줄 def to_proc ->{ self } end |
#type(types) ⇒ 기준
일치해야 하는 유형 또는 유형의 배열을 지정하는 기준을 Criteria
에 추가합니다.
461 462 463 |
# 파일 'lib/mongoid/criteria.rb', 461줄 def 유형(유형) any_in(self.판별자_키.to_sym => 배열(유형)) end |
#typecast_results? ⇒ true | false
이 기준 객체 반환하는 결과를 타입캐스트해야 하나요?라는 질문에 답변하는 술어입니다. (이에 대한 설명은 #raw를 참조하세요.) #raw_results?가 아니면 이 답변 의미가 없습니다. 인스턴스화된 문서 객체가 반환되면 항상 타입캐스트되기 때문에 true입니다.
232 233 234 |
# 파일 'lib/mongoid/criteria.rb', 232줄 def typecast_results? _raw_results && _raw_results[:typed] end |
#where(*args) ⇒ Criteria
이는 대부분의 MongoDB 쿼리의 일반적인 진입점입니다. 이렇게 하면 표준 필드인 값 선택, 해시 메서드를 사용한 확장 선택, string 이 제공되는 경우 $where 선택이 생성됩니다.
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 |