클래스: Mongo::Collection::View

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
열거 가능, 설명 가능, 변경 불가능, 반복 가능, 읽기 가능, 쓰기가능
다음에 정의됨:
lib/mongo/collection/view.rb,
lib/mongo/collection/view/iterable.rb,
lib/mongo/collection/view/readable.rb,
lib/mongo/collection/view/writable.rb,
lib/mongo/collection/view/immutable.rb,
lib/mongo/collection/view/map_reduce.rb,
lib/mongo/collection/view/aggregation.rb,
lib/mongo/collection/view/explainable.rb,
lib/mongo/collection/view/change_stream.rb,
lib/mongo/collection/view/builder/map_reduce.rb,
lib/mongo/collection/view/builder/aggregation.rb,
lib/mongo/collection/view/aggregation/behavior.rb,
lib/mongo/collection/view/change_stream/retryable.rb

개요

참고:

View API는 반공개입니다.

문서의 결과 설정하다 를 생성하는 쿼리 및 옵션을 나타냅니다.

헬퍼를 사용하여 View 를 수정할 수 있습니다. 인수가 제공되면 각 헬퍼가 View 을 반환하므로 헬퍼를 체인으로 연결할 수 있습니다.

쿼리 메시지는 '터미네이터'가 호출될 때 서버로 전송됩니다. 예를 들어 View 에서 #each가 호출되면 커서 객체가 생성된 다음 쿼리를 서버로 보냅니다.

View 는 사용자가 직접 생성하지 않습니다. 오히려 View 은 CRUD 작업이 호출될 때 View 를 생성하고 사용자가 상호 작용할 수 있도록 반환합니다.

이후:

  • 2.0.0

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

모듈: 빌더, Explainable, Immutable, Iterable, Readable, Writable 클래스: Aggregation, ChangeStream, MapReduce

상수 요약

쓰기 가능에서 포함된 상수

쓰기 가능::ARRAY_FILTERS

Explainable에 포함된 상수

Explainable::ALL_PLANS_EXECUTION, Explainable ::EXECUTION_STATS, Explainable::QUERY_PLANNER

인스턴스 속성 요약 접기

Attributes included from Mongo::CursorHost

#cursor, #timeout_mode

불변에 포함된 속성

#options

인스턴스 메서드 요약 접기

Writable에 포함된 메서드

#delete_many, #delete_one, #find_one_and_delete, #find_one_and_replace, #find_one_and_update, #replace_one, #update_many, #update_one

Explainable에 포함된 메서드

#explain

Readable에 포함된 메서드

#aggregate, #allow_disk_use, #allow_partial_results, #await_data, #batch_size, #comment, #count, #count_documents, #cursor_type, #distinct, #estimated_document_count, #hint, #limit, #map_reduce, #max_await_time_ms, #max_scan, #max_time_ms, #max_value, #min_value, #modifiers, #no_cursor_timeout, #parallel_scan, #projection, #read, #read_concern, #read_preference, #return_key, #show_disk_loc, #skip, #snapshot, #sort

Iterable에 포함된 메서드

#close_query, #each

Methods included from Mongo::CursorHost

#validate_timeout_mode!

생성자 세부 정보

#initialize(컬렉션, 필터하다 = {}, options = {}) ⇒ View

View 를 만듭니다.

예시:

이름이 Emily인 모든 사용자를 찾습니다.

View.new(collection, {:name => 'Emily'})

이름이 Emily인 모든 사용자를 건너뛰고 5 10반환합니다.

View.new(collection, {:name => 'Emily'}, :skip => 5, :limit => 10)

특정 읽기 설정 (read preference) 을 사용하여 이름이 Emily인 모든 사용자를 찾습니다.

View.new(collection, {:name => 'Emily'}, :read => :secondary_preferred)

매개변수:

  • 컬렉션 (컬렉션)

    쿼리할 Collection 입니다.

  • 필터 (해시) (기본값: {})

    쿼리 필터입니다.

  • 옵션 (해시) (기본값: {})

    추가 쿼리 옵션.

옵션 해시(options):

  • :allow_disk_use (true, false)

    true로 설정하면 서버는 찾기 작업을 실행하는 동안 임시 데이터를 디스크에 쓸 수 있습니다. 이 옵션은 MongoDB Server 버전 4.4 이상에서만 사용할 수 있습니다.

  • :batch_size (정수)

    MongoDB 의 각 응답에서 반환할 문서 수입니다.

  • :collation (해시)

    사용할 데이터 정렬입니다.

  • :comment (string)

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

  • :cursor_type (:tailable, :tailable_await)

    사용할 커서 유형입니다.

  • :explain (해시)

    찾기 대신 제공된 설명 옵션(알려진 옵션은 :verbose 및 :verbosity)을 사용하여 설명을 실행합니다.

  • :hint (해시)

    기본 인덱스 선택을 재정의하고 MongoDB가 쿼리에 특정 인덱스를 사용하도록 강제합니다.

  • :limit (정수)

    반환할 문서의 최대 개수입니다.

  • :max_scan (정수)

    지정된 수의 문서만 스캔하도록 쿼리 를 제한합니다. 쿼리가 너무 오랫동안 실행 되지 않도록 하려면 사용합니다. MongoDB 서버 버전 4.0 부터 더 이상 사용되지 않습니다.

  • :projection (해시)

    반환된 문서에 포함하거나 제외할 필드입니다.

  • :read (해시)

    쿼리 에 사용할 읽기 설정 (read preference) 입니다. 아무것도 제공하지 않으면 컬렉션의 기본값 읽기 설정 (read preference) 이 사용됩니다.

  • :read_concern (해시)

    쿼리에 사용할 읽기 고려입니다.

  • :show_disk_loc (true | false)

    각 문서의 필드로 디스크 위치 정보를 반환합니다.

  • :skip (정수)

    건너뛸 문서 수입니다.

  • : 스냅샷 (true | false)

    문서가 두 번 이상 반환되지 않도록 합니다. MongoDB 서버 버전 4.0 부터 더 이상 사용되지 않습니다.

  • :sort (해시)

    결과를 정렬하는 데 사용되는 키 및 방향 쌍입니다.

  • :timeout_mode (:cursor_lifetime | :iteration)

    How to interpret :timeout_ms (whether it applies to the lifetime of the cursor, or per iteration).

  • :timeout_ms (정수)

    The operation timeout in milliseconds. Must be a non-negative integer. An explicit value of 0 means infinite. The default value is unset which means the value is inherited from the collection or the database or the client.

이후:

  • 2.0.0



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# File 'lib/mongo/collection/view.rb', line 169

def 초기화(컬렉션, 필터 = {}, 옵션 = {})
  validate_doc!(필터)

  필터 = BSON::문서.신규(필터)
  옵션 = BSON::문서.신규(옵션)

  @collection = 컬렉션
  @operation_timeout_ms = 옵션.삭제(:timeout_ms)

  validate_timeout_mode!(옵션)

  # 사용자가 필터하다 및 기타 수정자에서 $ 쿼리 를 전달하는 경우입니다.
  # 함께?
  쿼리 = 필터.삭제(:$query)
  # 이렇게 하면 필터에 필터가 포함되지 않은 경우 수정자가 필터를 포함하게 됩니다.
  # $query를 통해 제공되지만 최상위 키로 제공되며,
  # 다운스트림 코드는 수정자에서 수정자가 아닌 키를 무시하나요?
  modifiers = 필터.merge(옵션.삭제(:modifiers) || {})
  @filter = (쿼리 || 필터).동결
  @options = 작업::찾기::빌더::Modifiers.map_driver_options(modifiers).병합!(옵션).동결
end

인스턴스 속성 세부 정보

#collectioncollection (읽기 전용)

쿼리 할 Collection 을(를) 반환합니다.

반환합니다:

  • (컬렉션)

    쿼리할 Collection 입니다.

이후:

  • 2.0.0



56
57
58
# File 'lib/mongo/collection/view.rb', line 56

def 컬렉션
  @collection
end

#필터해시 (읽기 전용) 라고도 함: 선택기

쿼리 필터하다 를 반환합니다.

반환합니다:

  • (해시)

    쿼리 필터입니다.

이후:

  • 2.0.0



59
60
61
# File 'lib/mongo/collection/view.rb', line 59

def 필터
  @filter
end

#operation_timeout_msInteger | nil | The timeout_ms value that was passed as an option to the view. (readonly)

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

Returns Integer | nil | The timeout_ms value that was passed as an option to the view.

반환합니다:

  • (Integer | nil | The timeout_ms value that was passed as an option to the view.)

    Integer | nil | The timeout_ms value that was passed as an option to the view.

이후:

  • 2.0.0



81
82
83
# File 'lib/mongo/collection/view.rb', line 81

def operation_timeout_ms
  @operation_timeout_ms
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true, false ~ 라고도 함: eql?

두 개의 View 객체를 비교합니다.

예시:

뷰를 다른 객체 와 비교합니다.

view == other

반환합니다:

  • (true, false)

    View 의 컬렉션, 필터하다 및 options 가 일치하면 동일합니다.

이후:

  • 2.0.0



92
93
94
95
96
97
# File 'lib/mongo/collection/view.rb', line 92

def ==(기타)
  반환 거짓 하지 않는 한 기타.is_a?(보기)
  컬렉션 == 기타.컬렉션 &&
      필터 == 기타.필터 &&
      옵션 == 기타.옵션
end

#해시정수

컬렉션 네임스페이스, 옵션의 해시, 필터의 해시로 구성된 View 의 해시 값입니다.

예시:

해시 값을 가져옵니다.

view.hash

반환합니다:

  • (정수)

    View 객체의 해시 값입니다.

이후:

  • 2.0.0



109
110
111
# File 'lib/mongo/collection/view.rb', line 109

def 해시
  [ 컬렉션.namespace, 옵션.해시, 필터.해시 ].해시
end

#검사string

사람이 읽을 수 있는 View의 string 표현을 가져옵니다.

예시:

검사를 받습니다.

view.inspect

반환합니다:

  • (string)

    View 인스턴스의 string 표현입니다.

이후:

  • 2.0.0



207
208
209
210
# File 'lib/mongo/collection/view.rb', line 207

def 검사
  "#<Mongo::Collection::View:0x#{object_id} 네임스페이스='#{컬렉션.네임스페이스}'" +
      "@filter =#{필터하다.to_s} @options=#{options.to_s}>"
end

#operation_timeouts(opts = {}) ⇒ Hash

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

Returns timeout_ms value set on the operation level (if any), and/or timeout_ms that is set on collection/database/client level (if any).

반환합니다:

  • (해시)

    timeout_ms value set on the operation level (if any), and/or timeout_ms that is set on collection/database/client level (if any).

이후:

  • 2.0.0



228
229
230
231
232
233
234
235
236
# File 'lib/mongo/collection/view.rb', line 228

def operation_timeouts(opts = {})
  {}. do |결과|
    만약 opts[:timeout_ms] || operation_timeout_ms
      결과[:operation_timeout_ms] = opts[:timeout_ms] || operation_timeout_ms
    other
      결과[:inherited_timeout_ms] = 컬렉션.timeout_ms
    end
  end
end

#timeout_msInteger | nil

The timeout_ms value to use for this operation; either specified as an option to the view, or inherited from the collection.

반환합니다:

  • (정수 | nil)

    the timeout_ms for this operation

이후:

  • 2.0.0



195
196
197
# File 'lib/mongo/collection/view.rb', line 195

def timeout_ms
  operation_timeout_ms || 컬렉션.timeout_ms
end

#write_concernMongo::WriteConcern

View 에 대한 쓰기 고려 (write concern) 를 가져옵니다.

예시:

쓰기 고려 (write concern) 를 가져옵니다.

view.write_concern

반환합니다:

이후:

  • 2.0.0



220
221
222
# File 'lib/mongo/collection/view.rb', line 220

def write_concern
  writeConcern.get(옵션[:write_concern] || 옵션[:write] || 컬렉션.write_concern)
end