모듈: Mongoid::Criteria::Queryable::Optional

확장자:
매크로 가능
포함 항목:
Mongoid::Criteria::Queryable
다음에 정의됨:
lib/mongoid/criteria/queryable/optional.rb

개요

선택적 모듈에는 건너뛰기, 제한, 정렬 등과 같이 쿼리를 둘러싼 예비 옵션과 관련된 모든 동작이 포함되어 있습니다.

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

매크로 가능에 포함된 메서드

인스턴스 속성 세부 정보

#options객체

속성 옵션의 값을 반환합니다.



14
15
16
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 14

def 옵션
  @options
end

#options 쿼리 옵션입니다.(queryoptions.) ⇒ 객체



14
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 14

attr_accessor :options

클래스 메서드 세부 정보

.포워더블Array<Symbol>

모델에서 전달할 수 있는 선택 사항의 메서드를 가져옵니다.

예시:

전달 가능한 메서드를 가져옵니다.

Optional.forwardables

반환합니다:

  • (Array<Symbol>)

    전달 가능한 메서드의 이름입니다.



374
375
376
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 374

def 포워더블
  public_instance_methods(거짓) - [ :options, :options= ]
end

인스턴스 메서드 세부 정보

#오름차순(*fields) ⇒ 선택 사항 asc 라고도 함

제공된 모든 필드에 대해 오름차순 정렬 옵션을 추가합니다.

예시:

오름차순 정렬을 추가합니다.

optional.ascending(:first_name, :last_name)

매개변수:

  • *fields (기호...)

    정렬할 필드 입니다.

반환합니다:



24
25
26
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 24

def ascending(*필드)
  sort_with_list(*필드, 1)
end

#batch_size(value = nil) ⇒ 선택 사항

MongoDB 에 일괄 처리에서 조회 할 문서 수를 알려주는 옵션을 추가합니다.

예시:

배치 크기 옵션을 적용합니다.

optional.batch_size(500)

매개변수:

  • value (정수) (기본값: nil)

    배치 크기입니다.

반환합니다:



40
41
42
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 40

def batch_size(value = nil)
  옵션(value) { |옵션| 옵션.저장(:batch_size, value) }
end

#데이터 정렬(collation_doc) ⇒ 선택 사항

데이터 정렬을 설정합니다.

예시:

데이터 정렬을 설정합니다.

optional.collation(locale: 'fr', strength: 2)

매개변수:

  • collation_doc (해시)

    사용할 데이터 정렬을 설명하는 문서 입니다.

반환합니다:



303
304
305
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 303

def 데이터 정렬(collation_doc)
  복제. { |쿼리| 쿼리.옵션.저장(:collation, collation_doc) }
end

#comment(comment = nil) ⇒ Optional

참고:

profileingLevel을 2 로 설정하면 댓글이 쿼리와 함께 프로필 컬렉션에 기록됩니다.

댓글을 쿼리와 연결합니다.

예시:

댓글을 추가합니다.

optional.comment('slow query')

매개변수:

  • comment (string) (기본값: nil)

    쿼리 와 연결할 주석 입니다.

반환합니다:



274
275
276
277
278
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 274

def comment(comment = nil)
  복제. do |쿼리|
    쿼리.옵션.저장(:comment, comment)
  end
end

#cursor_type(type) ⇒ 선택 사항

참고:

커서는 :tailable 또는 :tailable_await 유형일 수 있습니다.

커서 유형을 설정합니다.

예시:

커서 유형을 설정합니다.

optional.cursor_type(:tailable)
optional.cursor_type(:tailable_await)

매개변수:

  • 유형 (기호)

    생성할 커서의 유형입니다.

반환합니다:



291
292
293
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 291

def cursor_type(유형)
  복제. { |쿼리| 쿼리.옵션.저장(:cursor_type, 유형) }
end

#내림차순(*fields) ⇒ 선택 사항 이라고도 함: desc

제공된 모든 필드에 대해 내림차순 정렬 옵션을 추가합니다.

예시:

내림차순 정렬을 추가합니다.

optional.descending(:first_name, :last_name)

매개변수:

  • *fields (기호...)

    정렬할 필드 입니다.

반환합니다:



52
53
54
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 52

def descending(*필드)
  sort_with_list(*필드, -1)
end

#힌트(값 = nil) ⇒ 선택 사항

쿼리 옵션에 인덱스 힌트를 추가합니다.

예시:

Add an index hint.

optional.hint("$natural" => 1)

매개변수:

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

    인덱스 힌트입니다.

반환합니다:



67
68
69
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 67

def hint(value = nil)
  옵션(value) { |옵션| 옵션.저장(:hint, value) }
end

#limit(value = nil) ⇒ Optional

반환되는 결과에 제한할 문서 수를 추가합니다.

예시:

반환되는 문서 수를 제한합니다.

optional.limit(20)

매개변수:

  • value (정수) (기본값: nil)

    반환할 문서 수입니다.

반환합니다:



79
80
81
82
83
84
85
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 79

def limit(value = nil)
  옵션(value) do |옵션, 쿼리|
    val = value.to_i
    옵션.저장(:limit, val)
    쿼리.파이프라인.push("$limit" => val) 만약 집계?
  end
end

#max_scan(value = nil) ⇒ 선택 사항

컬렉션 에서 스캔되는 문서 수를 제한하는 옵션을 추가합니다.

예시:

최대 스캔 제한을 추가합니다.

optional.max_scan(1000)

매개변수:

  • value (정수) (기본값: nil)

    스캔할 최대 문서 수입니다.

반환합니다:



96
97
98
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 96

def max_scan(value = nil)
  옵션(value) { |옵션| 옵션.저장(:max_scan, value) }
end

#max_time_ms(value = nil) ⇒ 선택 사항

커서에서 작업을 처리하는 데 걸리는 누적 시간 제한(밀리초)을 추가합니다.

예시:

최대 시간 ms 옵션을 추가합니다.

optional.max_time_ms(200)

매개변수:

  • value (정수) (기본값: nil)

    커서 에서 작업을 처리 하는 최대 시간(밀리초)입니다.

반환합니다:



108
109
110
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 108

def max_time_ms(value = nil)
  옵션(value) { |옵션| 옵션.저장(:max_time_ms, value) }
end

#no_timeout선택 사항

쿼리에 시간 초과가 발생하지 않도록 지시합니다.

예시:

쿼리에 시간 초과가 발생하지 않도록 지시합니다.

optional.no_timeout

반환합니다:



118
119
120
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 118

def no_timeout
  복제. { |쿼리| 쿼리.옵션.저장(:timeout, 거짓) }
end

#only(*args) ⇒ 선택 사항

제공된 필드만 포함하도록 결과를 제한합니다.

예시:

결과를 제공된 필드로 제한합니다.

optional.only(:name, :dob)

매개변수:

  • *args (기호...)

    반환할 필드 입니다.

반환합니다:



130
131
132
133
134
135
136
137
138
139
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 130

def 제한하기(*args)
  args = args.flatten
  옵션(*args) do |옵션|
    옵션.저장(
      :fields,
      args.주입(옵션[:fields] || {}){ |sub, 필드| sub. { sub[필드] = 1 }},
      거짓
    )
  end
end

#order_by(*spec) ⇒ 선택 사항 주문 이라고도 함

옵션에 정렬 기준을 추가합니다.

예시:

정수 방향의 해시를 통해 정렬 옵션을 추가합니다.

optional.order_by(name: 1, dob: -1)

기호 방향이 있는 해시를 통해 정렬 옵션을 추가합니다.

optional.order_by(name: :asc, dob: :desc)

string 방향이 있는 해시를 통해 정렬 옵션을 추가합니다.

optional.order_by(name: "asc", dob: "desc")

정수 방향이 있는 배열 을 통해 정렬 옵션을 추가합니다.

optional.order_by([[ name, 1 ], [ dob, -1 ]])

기호 방향이 있는 배열 을 통해 정렬 옵션을 추가합니다.

optional.order_by([[ :name, :asc ], [ :dob, :desc ]])

string 방향이 있는 배열 을 통해 정렬 옵션을 추가합니다.

optional.order_by([[ "name", "asc" ], [ "dob", "desc" ]])

키를 사용하여 정렬 옵션을 추가합니다.

optional.order_by(:name.asc, :dob.desc)

string 을 통해 정렬 옵션을 추가합니다.

optional.order_by("name ASC, dob DESC")

매개변수:

  • *spec ([ 배열 | 해시 | string ]...)

    정렬 사양입니다.

반환합니다:



170
171
172
173
174
175
176
177
178
179
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 170

def order_by(*사양)
  옵션(사양) do |옵션, 쿼리|
    사양.컴팩트. do |criterion|
      criterion.__sort_option__.각각의 쌍 do |필드, 방향|
        add_sort_option(옵션, 필드, 방향)
      end
      쿼리.파이프라인.push("$sort" => 옵션[:sort]) 만약 집계?
    end
  end
end

#reorder(*spec) ⇒ 선택 사항

주문 기준을 병합하는 대신 이 메서드를 사용하여 기존 주문을 제공된 주문으로 완전히 대체합니다.

예시:

순서를 바꿉니다.

optional.reorder(name: :asc)

매개변수:

  • *spec ([ 배열 | 해시 | string ]...)

    정렬 사양입니다.

반환합니다:



191
192
193
194
195
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 191

def 재정렬(*사양)
  복제. do |쿼리|
    쿼리.옵션.삭제(:sort)
  end.order_by(*사양)
end

#skip(value = nil) ⇒ 선택 사항 : 오프셋 이라고도 함

건너뛸 문서 수를 추가합니다.

예시:

건너뛸 번호를 추가합니다.

optional.skip(100)

매개변수:

  • value (정수) (기본값: nil)

    건너뛸 번호입니다.

반환합니다:



205
206
207
208
209
210
211
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 205

def 건너뛰기(value = nil)
  옵션(value) do |옵션, 쿼리|
    val = value.to_i
    옵션.저장(:skip, val)
    쿼리.파이프라인.push("$skip" => val) 만약 집계?
  end
end

#slice(기준 = nil) ⇒ 선택 사항

포함된 배열을 슬라이스하여 반환되는 결과를 제한합니다.

예시:

반환된 결과를 슬라이스합니다.

optional.slice(aliases: [ 0, 5 ])

매개변수:

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

    슬라이스 옵션.

반환합니다:



222
223
224
225
226
227
228
229
230
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 222

def 슬라이스(criterion = nil)
  옵션(criterion) do |옵션|
    옵션.__union__(
      필드: criterion.주입({}) do |옵션, (필드, val)|
        옵션. { |opt| opt.저장(필드, { "$slice" => val }) }
      end
    )
  end
end

스냅샷 #스냅샷선택 사항

스냅샷 모드에서 작동하도록 쿼리에 지시합니다.

예시:

스냅샷 옵션을 추가합니다.

optional.snapshot

반환합니다:



238
239
240
241
242
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 238

def 스냅샷
  복제. do |쿼리|
    쿼리.옵션.저장(: 스냅샷, true)
  end
end

#without(*args) ⇒ 선택 사항

제공되지 않은 필드만 포함하도록 결과를 제한합니다.

예시:

결과를 제공되지 않은 필드로 제한합니다.

optional.without(:name, :dob)

매개변수:

  • *args (기호...)

    무시할 필드 입니다.

반환합니다:



252
253
254
255
256
257
258
259
260
261
# 파일 'lib/mongoid/criteria/queryable/optional.rb', 줄 252

def 미포함:(*args)
  args = args.flatten
  옵션(*args) do |옵션|
    옵션.저장(
      :fields,
      args.주입(옵션[:fields] || {}){ |sub, 필드| sub. { sub[필드] = 0 }},
      거짓
    )
  end
end