클래스: Mongo::Collection

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
헬퍼, QueryableEncryption, 재시도 가능
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/collection.rb,
build/ruby-driver-v2.19/lib/mongo/collection/view.rb,
build/ruby-driver-v2.19/lib/mongo/collection/helpers.rb,
build/ruby-driver-v2.19/lib/mongo/collection/view/iterable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/readable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/writable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/mutable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/map_reduce.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/aggregation.rb,
build/ Ruby-driver-v2.19/lib/mongo/collection/view/explainable.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/change_stream.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/queryable_encryption.rb,
빌드/루비 드라이버-v2.19/lib/mongo/collection/view/builder/map_reduce.rb,
build/ Ruby-driver-v2.19/lib/mongo/collection/view/builder/aggregation.rb,
build/ruby-driver-v2.19/lib/mongo/collection/view/change_stream/retryable.rb

개요

데이터베이스 의 컬렉션 과 컬렉션에 직접 적용할 수 있는 작업을 나타냅니다.

이후:

  • 2.0.0

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

모듈: 헬퍼, QueryableEncryption 클래스: 보기

상수 요약 접기

CAPPED =

고정 사이즈 옵션.

이후:

  • 2.1.0

'capped'.동결
NS =

ns 필드 상수입니다.

이후:

  • 2.1.0

'ns'.동결
CHANGEABLE_OPTIONS =

#with 메서드를 통해 새 Collection 인스턴스 에서 업데이트할 수 있는 옵션입니다.

이후:

  • 2.1.0

[ :read, :read_concern, :write, :write_concern ].동결
CREATE_COLLECTION_OPTIONS =

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

옵션 맵을 사용하여 컬렉션 옵션을 변환합니다.

이후:

  • 2.0.0

{
  :time_series => :timeseries,
  :expire_after => :expireAfterSeconds,
  :clustered_index => :clusteredIndex,
  :change_stream_pre_and_post_images => :changeStreamPreAndPostImages,
  :encrypted_fields => :encryptedFields,
  :validator => :validator,
  :view_on => :viewOn
}

QueryableEncryption에 포함된 상수

QueryableEncryption::QE2_MIN_WIRE_VERSION

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

헬퍼에 포함된 메서드

#do_drop

QueryableEncryption에 포함된 메서드

#maybe_create_qe_collections, #maybe_drop_emm_collections

Retryable에 포함된 메서드

#read_Worker, #select_server, #write_Worker

생성자 세부 정보

#initialize(데이터베이스, name, options = {}) ⇒ Collection

새 컬렉션 을 인스턴스화합니다.

예시:

새 컬렉션 을 인스턴스화합니다.

Mongo::Collection.new(database, 'test')

매개변수:

  • database (Mongo::Database)

    컬렉션의 데이터베이스 입니다.

  • 이름 (string, 기호)

    컬렉션 이름입니다.

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

    컬렉션 옵션.

  • opts (해시)

    사용자 지정 가능한 옵션 세트

옵션 해시(options):

  • :read_concern (해시)

    다음과 같은 선택적 키가 있는 읽기 고려 (read concern) 옵션 해시입니다.

    • :level - 읽기 설정 (read preference) 레벨을 기호로 표시합니다. 유효한 값

      are *:local*, *:majority*, and *:snapshot*
      
  • :read (해시)

    읽기 설정 옵션. 해시에는 다음과 같은 항목이 있을 수 있습니다.

    • : 모드 - 기호로 지정된 읽기 설정 (read preference) . 유효한 값은 프라이머리, :primary_preferred, : 세컨더리, :secondary_preferred:nearest 입니다.

    • :tag_sets - 해시 배열입니다.

    • :local_threshold.

다음을 발생시킵니다.

이후:

  • 2.0.0



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 158

def 초기화(database, 이름, 옵션 = {})
  올리다 오류::InvalidCollectionName.신규 하지 않는 한 이름
  만약 옵션[:write] && 옵션[:write_concern] && 옵션[:write] != 옵션[:write_concern]
    올리다 ArgumentError, ":write 및 :write_concern이 모두 지정된 경우, 둘 다 동일해야 합니다: #{options.검사}"
  end
  @database = database
  @name = 이름.to_s.동결
  @options = 옵션.dup
=begin WriteConcern 객체 지원
  if @options[:write_concern].is_a?(WriteConcern::Base)
    # 인스턴스를 캐시하여 불필요하게 재구성하지 않도록 합니다.
    @write_concern = @options[:write_concern]
    @options[:write_concern] = @write_concern.options
  end
=end
  @options.동결
end

인스턴스 속성 세부 정보

#databaseMongo::Database (읽기 전용)

컬렉션 이 있는 데이터베이스 를 반환합니다.

반환합니다:

이후:

  • 2.0.0



46
47
48
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 46

def database
  @database
end

#이름string (읽기 전용)

컬렉션 의 이름을 반환합니다.

반환합니다:

  • (string)

    컬렉션의 이름입니다.

이후:

  • 2.0.0



49
50
51
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 49

def 이름
  @name
end

#options해시 (읽기 전용)

반환값 컬렉션 옵션.

반환합니다:

  • (해시)

    컬렉션 옵션.

이후:

  • 2.0.0



52
53
54
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 52

def 옵션
  @options
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true | false

컬렉션 이 다른 객체 와 같은지 확인합니다. 이름과 데이터베이스 가 동일한지 확인합니다.

예시:

컬렉션 동일성을 확인합니다.

collection == other

매개변수:

  • 기타 (객체)

    확인할 객체 입니다.

반환합니다:

  • (true | false)

    객체가 동일한 경우.

이후:

  • 2.0.0



89
90
91
92
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 89

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

#aggregate(파이프라인, options = {}) ⇒ View::Aggregation

컬렉션 에 대해 집계 을 수행합니다.

예시:

집계 을 수행합니다.

collection.aggregate([ { "$group" => { "_id" => "$city", "tpop" => { "$sum" => "$pop" }}} ])

매개변수:

  • 파이프라인 (Array<Hash>)

    집계 파이프라인.

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

    애그리게이션 옵션.

옵션 해시(options):

  • :allow_disk_use (true | false)

    애그리게이션 중에 디스크 사용이 허용되는 경우 true로 설정합니다.

  • :batch_size (정수)

    배치당 반환할 문서 수입니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :collation (해시)

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

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

  • :hint (string)

    집계에 사용할 인덱스입니다.

  • :let (해시)

    파이프라인 에서 사용할 변수 매핑. 자세한 내용은 서버 설명서를 참조하세요.

  • :max_time_ms (정수)

    집계 실행 을 허용하는 최대 시간(밀리초)입니다.

  • :use_cursor (true | false)

    명령이 서버 에 커서 를 사용하여 결과를 제공하도록 요청 할지 여부를 나타냅니다. 서버 버전 3.6 부터 애그리게이션은 항상 커서 를 사용하여 결과를 제공하므로 이 옵션은 유효하지 않습니다.

  • :session (세션)

    사용할 세션입니다.

반환합니다:

이후:

  • 2.1.0



536
537
538
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 536

def 집계(파이프라인, 옵션 = {})
  보기.신규(self, {}, 옵션).집계(파이프라인, 옵션)
end

#bulk_write(요청, 옵션 = {}) ⇒ BulkWrite::Result

일괄 쓰기 (write) 작업을 배치 실행합니다.

예시:

대량 쓰기 (write) 를 실행합니다.

collection.bulk_write(operations, options)

매개변수:

  • 요청 (Enumerable<Hash>)

    대량 쓰기 요청.

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

    옵션.

옵션 해시(options):

  • :ordered (true | false)

    작업을 순서대로 실행해야 하는지 여부입니다.

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션. :w => 정수, : fsync => 부울, :j => 부울일 수 있습니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :session (세션)

    작업 세트에 사용할 세션입니다.

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

이후:

  • 2.0.0



845
846
847
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 845

def bulk_write(요청, 옵션 = {})
  대량 쓰기.신규(self, 요청, 옵션).실행
end

#고정?true | false

컬렉션 제한이 있나요?

예시:

컬렉션 제한이 있나요?

collection.capped?

반환합니다:

  • (true | false)

    컬렉션 에 제한이 있는 경우.

이후:

  • 2.0.0



316
317
318
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 316

def 고정?
  database.read_command(:collstats => 이름).문서[0][CCAPED]
end

#count(필터하다 = nil, options = {}) ⇒ 정수

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

대신 #count_documents 또는 expected_document_count를 사용하세요. 그러나 #count_documents로 전환할 때는 다음 연산자를 대체해야 합니다.

* $where should be replaced with $expr (only works on 3.6+)
* $near should be replaced with $geoWithin with $center
* $nearSphere should be replaced with $geoWithin with $centerSphere

컬렉션 에서 일치하는 문서의 예상 수를 가져옵니다.

예시:

개수를 가져옵니다.

collection.count(name: 1)

매개변수:

  • 필터 (해시) (기본값: nil)

    문서 일치를 위한 필터하다 입니다.

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

    카운트 옵션.

옵션 해시(options):

  • :hint (해시)

    사용할 인덱스입니다.

  • :limit (정수)

    반환할 문서의 최대 개수.

  • :max_time_ms (정수)

    명령 실행 을 허용하는 최대 시간입니다.

  • :skip (정수)

    계산하기 전에 건너뛸 문서 수입니다.

  • :read (해시)

    읽기 설정 (read preference) 옵션.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

반환합니다:

  • (정수)

    문서 수입니다.

이후:

  • 2.1.0



640
641
642
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 640

def 카운트(필터 = nil, 옵션 = {})
  보기.신규(self, 필터 || {}, 옵션).카운트(옵션)
end

#count_documents(필터하다 = {}, options = {}) ⇒ 정수

쿼리 와 일치하는 문서 수를 가져옵니다. 더 이상 사용되지 않는 #count 메서드와 달리 이 메서드는 추정치가 아닌 필터하다 와 일치하는 정확한 문서 수(또는 필터하다 가 제공되지 않은 경우 컬렉션 의 정확한 문서 수)를 반환합니다.

컬렉션 메타데이터 를 사용하여 컬렉션 내 문서 수의 추정치를 조회 하려면 #estimated_document_count 를 사용합니다.

매개변수:

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

    문서 일치를 위한 필터하다 입니다.

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

    작업에 대한 옵션입니다.

옵션 해시(options):

  • :skip (정수)

    건너뛸 문서 수입니다.

  • :hint (해시)

    기본값 인덱스 선택을 재정의하고 쿼리 에 특정 인덱스 를 사용하도록 MongoDB 를 강제합니다. 서버 버전 3.6이상이 필요합니다.

  • :limit (정수)

    계산할 Docs 의 최대 개수입니다.

  • :max_time_ms (정수)

    명령 실행 을 허용하는 최대 시간입니다.

  • :read (해시)

    읽기 설정 (read preference) 옵션.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

반환합니다:

  • (정수)

    문서 수입니다.

이후:

  • 2.6.0



670
671
672
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 670

def count_documents(필터 = {}, 옵션 = {})
  보기.신규(self, 필터, 옵션).count_documents(옵션)
end

#create(opts = {}) ⇒ 결과

데이터베이스 에 컬렉션 을 강제로 생성합니다.

예시:

컬렉션을 강제로 생성합니다.

collection.create

매개변수:

  • opts (해시) (기본값: {})

    만들기 작업에 대한 옵션입니다.

옵션 해시(opts):

  • :capped (true | false)

    고정 크기 컬렉션 을 만듭니다.

  • :change_stream_pre_and_post_images (해시)

    생성된 컬렉션 에서 사전 및 사후 이미지를 활성화 하는 데 사용됩니다. 해시에는 다음과 같은 항목이 있을 수 있습니다.

    • :enabled - true 또는 false.

  • :clustered_index (해시)

    클러스터형 인덱스 를 만듭니다. 이 옵션은 이 컬렉션 이 _id 에 클러스터링되는 방법을 지정합니다. 해시에는 다음과 같은 항목이 있을 수 있습니다.

    • :key - 클러스터형 인덱스 키 필드 입니다. { _id : 1 }(으)로 설정하다 해야 합니다.

    • :unique - true로 설정하다 해야 합니다. 컬렉션 은 클러스터형 인덱스 키 값이 인덱스 의 기존 값과 일치하는 삽입 또는 업데이트된 문서를 허용하지 않습니다.

    • :name - 선택 사항입니다. 클러스터형 인덱스를 고유하게 식별하는 이름입니다.

  • :collation (해시)

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

  • :encrypted_fields (해시)

    Queryable Encryption 의 암호화됨 필드를 설명하는 해시입니다.

  • :expire_after (정수)

    오래된 Time Series 데이터를 몇 초 후에 삭제해야 하는지를 나타내는 숫자입니다.

  • :max (정수)

    고정 사이즈 컬렉션 의 최대 문서 수입니다. 크기 제한은 최대값보다 우선합니다.

  • : 파이프라인 (Array<Hash>)

    파이프라인 단계의 배열 입니다. 이 파이프라인 을 view_on 컬렉션 또는 뷰에 적용하여 뷰를 생성합니다.

  • :session (세션)

    작업에 사용할 세션입니다.

  • :size (정수)

    고정 사이즈 고정 사이즈 컬렉션 의 크기입니다.

  • :time_series (해시)

    Time Series 컬렉션을 만듭니다. 해시에는 다음과 같은 항목이 있을 수 있습니다.

    • :timeField – 각 time series 문서 에서 날짜를 포함하는 필드 의 이름입니다.

    • :metaField – 각 time series 문서 에서 메타데이터 를 포함하는 필드 의 이름입니다.

    • :granularity - 연속적으로 수신되는 측정값 사이의 시간 범위와 가장 가까운 값으로 세분성을 설정합니다. 가능한 값은 '초'(기본값), '분', '시간'입니다.

  • :validator (해시)

    컬렉션 에 대한 문서 유효성 검사 옵션을 설명하는 해시입니다.

  • :view_on (string)

    뷰를 생성할 소스 컬렉션 또는 뷰의 이름입니다.

  • :write (해시)

    더 이상 사용되지 않습니다. :write_concern 옵션과 동일합니다.

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션. :w => Integer|String, : fsync => Boolean, :j => Boolean일 수 있습니다.

반환합니다:

  • (결과)

    명령의 결과입니다.

이후:

  • 2.0.0



373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 373

def create(opts = {})
  # 생성 명령에 읽기 옵션을 전달하면 명령이 중단됩니다.
  # 읽기 옵션을 필터링합니다. 세션도 다음과 같이 제외됩니다.
  # with_session 호출에 사용되며 다음의 일부가 되어서는 안 됩니다.
  작업 #. 작업에 전달되면 실패 BSON
  # 직렬화.
  # TODO는 다음과 같은 경우 읽기 옵션 목록을 클래스 수준 상수에 넣습니다.
  # 전체 설정하다 가 무엇인지 알아냅니다.
  옵션 = 해시[self.옵션.merge(opts).거부 do |, value|
    %w(읽기 read_preference read_concern Session).포함?(.to_s)
  end]
  # Ruby 옵션을 서버 스타일로 변환.
  CREATE_COLLECTION_OPTIONS. do |Ruby_key, server_key|
    만약 옵션.키?(Ruby_key)
      옵션[server_key] = 옵션.삭제(Ruby_key)
    end
  end
  작업 = { :create => 이름 }.merge(옵션)
  작업.삭제(:write)
  작업.삭제(:write_concern)
  고객.send(:with_session, opts) do |Session|
    write_concern = 만약 opts[:write_concern]
      writeConcern.get(opts[:write_concern])
    other
      self.write_concern
    end

    컨텍스트 = 작업::Context.신규(클라이언트: 고객, 세션: Session)
    may_create_qe_collections(opts[:encrypted_fields], 고객, Session) do |encryption_fields|
      작업::만들기.신규(
        선택기: 작업,
        db_name: database.이름,
        write_concern: write_concern,
        세션: Session,
        # 이는 컬렉션 옵션이며 데이터 정렬은
        # create 메서드에 전달된 옵션에서 가져옵니다.
        데이터 정렬: 옵션[:collation] || 옵션['데이터 정렬'],
        encryption_fields: encryption_fields,
        validator: 옵션[:validator],
      ).실행(Next_primary(nil, Session), 컨텍스트: 컨텍스트)
    end
  end
end

#delete_many(filter = nil, options = {}) ⇒ Result

컬렉션 에서 문서를 제거합니다.

예시:

컬렉션에서 여러 문서를 제거합니다.

collection.delete_many

매개변수:

  • 필터 (해시) (기본값: nil)

    사용할 필터하다 입니다.

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

    옵션.

옵션 해시(options):

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (결과)

    데이터베이스 의 응답입니다.

이후:

  • 2.1.0



889
890
891
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 889

def delete_many(필터 = nil, 옵션 = {})
  찾기(필터, 옵션).delete_many(옵션)
end

#delete_one(필터하다 = nil, options = {}) ⇒ 결과

컬렉션 에서 문서 를 제거합니다.

예시:

컬렉션 에서 단일 문서 를 제거합니다.

collection.delete_one

매개변수:

  • 필터 (해시) (기본값: nil)

    사용할 필터하다 입니다.

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

    옵션.

옵션 해시(options):

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (결과)

    데이터베이스 의 응답입니다.

이후:

  • 2.1.0



867
868
869
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 867

def delete_one(필터 = nil, 옵션 = {})
  찾기(필터, 옵션).delete_one(옵션)
end

#distinct(field_name, 필터하다 = nil, options = {}) ⇒ Array<Object>

특정 필드 에 대한 고유 값 목록을 가져옵니다.

예시:

고유 값을 가져옵니다.

collection.distinct('name')

매개변수:

  • field_name (기호, string)

    필드의 이름입니다.

  • 필터 (해시) (기본값: nil)

    고유 값을 조회 할 문서입니다.

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

    고유한 명령 옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    명령 실행 을 허용하는 최대 시간입니다.

  • :read (해시)

    읽기 설정 (read preference) 옵션.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

반환합니다:

  • (Array<Object>)

    고유 값 목록입니다.

이후:

  • 2.1.0



712
713
714
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 712

def 별개(field_name, 필터 = nil, 옵션 = {})
  보기.신규(self, 필터 || {}, 옵션).별개(field_name, 옵션)
end

#drop(opts = {}) ⇒ 결과

참고:

컬렉션 이 존재하지 않는 경우 반환되는 오류가 표시되지 않습니다.

컬렉션 을 삭제합니다. 컬렉션 과 관련된 모든 인덱스 및 연결된 Queryable Encryption 컬렉션도 삭제합니다.

예시:

컬렉션을 제거합니다.

collection.drop

매개변수:

  • opts (해시) (기본값: {})

    드롭 작업에 대한 옵션입니다.

옵션 해시(opts):

  • :session (세션)

    작업에 사용할 세션입니다.

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션.

  • :encrypted_fields (해시 | nil)

    컬렉션 헬퍼 '생성'에 제공된 암호화된 필드 해시입니다.

반환합니다:

  • (결과)

    명령의 결과입니다.

이후:

  • 2.0.0



435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 435

def 제거(opts = {})
  고객.send(:with_session, opts) do |Session|
    may_drop_emm_collections(opts[:encrypted_fields], 고객, Session) do
      temp_write_concern = write_concern
      write_concern = 만약 opts[:write_concern]
        writeConcern.get(opts[:write_concern])
      other
        temp_write_concern
      end
      컨텍스트 = 작업::Context.신규(클라이언트: 고객, 세션: Session)
      작업 = 작업::drop.신규({
        선택기: { :drop => 이름 },
        db_name: database.이름,
        write_concern: write_concern,
        세션: Session,
      })
      do_drop(작업, Session, 컨텍스트)
    end
  end
end

#추정 _문서_카운트 (옵션 = {}) ⇒ 정수

컬렉션 메타데이터 를 사용하여 컬렉션 내 문서 수의 추정치를 가져옵니다.

컬렉션에 있는 정확한 문서 수를 검색하거나 필터와 일치하는 문서 수를 계산하려면 #count_documents를 사용합니다.

매개변수:

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

    작업에 대한 옵션입니다.

옵션 해시(options):

  • :max_time_ms (정수)

    서버 에서 명령을 실행 수 있는 최대 시간입니다.

  • :read (해시)

    읽기 설정 (read preference) 옵션.

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

반환합니다:

  • (정수)

    문서 수입니다.

이후:

  • 2.6.0



691
692
693
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 691

def 예상_문서_수(옵션 = {})
  보기.신규(self, {}, 옵션).예상_문서_수(옵션)
end

#find(필터하다 = nil, options = {}) ⇒ CollectionView

컬렉션에서 문서를 찾습니다.

예시:

선택기를 사용하여 컬렉션 에서 문서를 찾습니다.

collection.find(name: 1)

컬렉션 의 모든 문서를 가져옵니다.

collection.find

매개변수:

  • 필터 (해시) (기본값: nil)

    찾기에 사용할 필터입니다.

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

    찾기 옵션입니다.

옵션 해시(options):

  • :allow_disk_use (true | false)

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

  • :allow_partial_results (true | false)

    일부 샤드가 다운된 경우 쿼리가 부분적인 결과를 얻을 수 있도록 허용합니다.

  • :batch_size (정수)

    MongoDB 의 각 결과 배치 에서 반환된 문서 수입니다.

  • :collation (해시)

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

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

  • :cursor_type (:tailable, :tailable_await)

    사용할 커서 유형입니다.

  • :limit (정수)

    쿼리 에서 반환할 Docs 의 최대 개수입니다.

  • :max_time_ms (정수)

    쿼리 실행을 허용하는 최대 시간(밀리초)입니다.

  • :modifiers (해시)

    쿼리 의 출력 또는 동작을 수정하는 메타 연산자가 포함된 문서 입니다.

  • :no_cursor_timeout (true | false)

    서버 는 일반적으로 과도한 메모리 사용을 방지하기 위해 비활성 기간(10 분) 후에 유휴 커서의 시간을 초과합니다. 이를 방지하려면 이 옵션을 설정합니다.

  • :oplog_replay (true | false)

    내부 복제 용도로만 애플리케이션에서 이 옵션을 설정하다 해서는 안 됩니다.

  • :projection (해시)

    결과 설정하다 의 각 문서에 포함하거나 제외할 필드입니다.

  • :session (세션)

    사용할 세션입니다.

  • :skip (정수)

    결과를 반환하기 전에 건너뛸 Docs 의 수입니다.

  • :sort (해시)

    결과 설정하다 의 정렬 기준이 되는 키 및 방향 쌍입니다.

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (CollectionView)

    컬렉션 보기입니다.

이후:

  • 2.0.0



501
502
503
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 501

def 찾기(필터 = nil, 옵션 = {})
  보기.신규(self, 필터 || {}, 옵션)
end

#find_one_and_delete(필터하다, options = {}) ⇒ BSON::Document?

findAndModify를 통해 데이터베이스에서 단일 문서를 찾아 삭제하고 원본 문서를 반환합니다.

예시:

하나의 문서 를 찾아 삭제 합니다.

collection.find_one_and_delete(name: 'test')

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

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

    옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    명령이 실행 수 있는 최대 시간(밀리초)입니다.

  • :projection (해시)

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

  • :sort (해시)

    결과 설정하다 의 정렬 기준이 되는 키 및 방향 쌍입니다.

  • :write_concern (해시)

    쓰기 고려 옵션. 기본값은 컬렉션의 쓰기 고려입니다.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (BSON::Document, nil)

    문서(있는 경우).

이후:

  • 2.1.0



1027
1028
1029
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 1027

def find_one_and_delete(필터, 옵션 = {})
  찾기(필터, 옵션).find_one_and_delete(옵션)
end

#find_one_and_replace(필터하다, 교체 , 옵션 = {}) ⇒ BSON::Document

단일 문서 를 찾아 대체하고, 달리 지정되지 않는 한 원본 문서를 반환합니다.

예시:

문서 를 찾아 교체하고 원본을 반환합니다.

collection.find_one_and_replace({ name: 'test' }, { name: 'test1' })

문서 를 찾아 교체하고 새 문서 를 반환합니다.

collection.find_one_and_replace({ name: 'test' }, { name: 'test1' }, :return_document => :after)

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

  • 교체 (BSON::Document)

    대체 문서입니다.

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

    옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    명령이 실행 수 있는 최대 시간(밀리초)입니다.

  • :projection (해시)

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

  • :sort (해시)

    결과 설정하다 의 정렬 기준이 되는 키 및 방향 쌍입니다.

  • :return_document (기호)

    :before 또는 :after.

  • : 업서트 (true | false)

    문서 가 존재하지 않는 경우 업서트 할지 여부입니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :write_concern (해시)

    쓰기 고려 옵션. 기본값은 컬렉션의 쓰기 고려입니다.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (BSON::Document)

    문서입니다.

이후:

  • 2.1.0



1105
1106
1107
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 1105

def find_one_and_replace(필터, 교체, 옵션 = {})
  찾기(필터, 옵션).find_one_and_update(교체, 옵션)
end

#find_one_and_update(filter, update, options = {}) ⇒ BSON::Document

findAndModify를 통해 단일 문서 를 찾아 업데이트하고, 달리 지정되지 않는 한 원본 문서를 반환합니다.

예시:

문서 를 찾아 업데이트 하고 원본을 반환합니다.

collection.find_one_and_update({ name: 'test' }, { "$set" => { name: 'test1' }})

문서 를 찾아 업데이트 하고 업데이트된 문서 를 반환합니다.

collection.find_one_and_update({ name: 'test' }, { "$set" => { name: 'test1' }}, :return_document => :after)

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

  • update (해시 | Array<Hash>)

    업데이트 문서 또는 파이프라인.

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

    옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    명령이 실행 수 있는 최대 시간(밀리초)입니다.

  • :projection (해시)

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

  • :sort (해시)

    결과 설정하다 의 정렬 기준이 되는 키 및 방향 쌍입니다.

  • :return_document (기호)

    :before 또는 :after.

  • : 업서트 (true | false)

    문서 가 존재하지 않는 경우 업서트 할지 여부입니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :write_concern (해시)

    쓰기 고려 옵션. 기본값은 컬렉션의 쓰기 고려입니다.

  • :collation (해시)

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

  • :array_filters (배열)

    업데이트 를 적용 해야 하는 배열 요소를 지정하는 필터 설정하다 입니다.

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (BSON::Document)

    문서입니다.

이후:

  • 2.1.0



1067
1068
1069
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 1067

def find_one_and_update(필터, update, 옵션 = {})
  찾기(필터, 옵션).find_one_and_update(update, 옵션)
end

#indexes(options = {}) ⇒ View::Index

이 컬렉션 의 모든 인덱스 보기를 가져옵니다. 반복 가능하거나 더 많은 연산을 가질 수 있습니다.

예시:

인덱스 뷰를 가져옵니다.

collection.indexes

매개변수:

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

    모든 인덱스 목록을 가져오는 옵션입니다.

옵션 해시(options):

  • :session (세션)

    사용할 세션입니다.

반환합니다:

  • (View::Index)

    인덱스 뷰입니다.

이후:

  • 2.0.0



729
730
731
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 729

def 인덱스(옵션 = {})
  Index::보기.신규(self, 옵션)
end

#insert_many(documents, options = {}) ⇒ Result

제공된 문서를 컬렉션에 삽입합니다.

예시:

collection에 문서를 삽입합니다.

collection.insert_many([{ name: 'test' }])

매개변수:

  • 문서 (Enumerable<Hash>)

    삽입할 문서입니다.

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

    삽입 옵션.

옵션 해시(options):

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

  • :ordered (true | false)

    작업을 순서대로 실행해야 하는지 여부입니다.

  • :session (세션)

    작업에 사용할 세션입니다.

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션. :w => 정수, : fsync => 부울, :j => 부울일 수 있습니다.

반환합니다:

  • (결과)

    데이터베이스 응답 래퍼입니다.

이후:

  • 2.0.0



817
818
819
820
821
822
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 817

def insert_many(문서, 옵션 = {})
  쿼리 캐시.clear_namespace(namespace)

  삽입 = 문서.map{ |doc| { :insert_one => doc }}
  bulk_write(삽입, 옵션)
end

#insert_one(문서, opts = {}) ⇒ Result

컬렉션에 단일 문서를 삽입합니다.

예시:

collection에 문서를 삽입합니다.

collection.insert_one({ name: 'test' })

매개변수:

  • 문서 (해시)

    삽입할 문서입니다.

  • opts (해시) (기본값: {})

    삽입 옵션.

옵션 해시(opts):

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

  • :session (세션)

    작업에 사용할 세션입니다.

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션. :w => 정수, : fsync => 부울, :j => 부울일 수 있습니다.

반환합니다:

  • (결과)

    데이터베이스 응답 래퍼입니다.

이후:

  • 2.0.0



764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 764

def insert_one(문서, opts = {})
  쿼리 캐시.clear_namespace(namespace)

  고객.send(:with_session, opts) do |Session|
    write_concern = 만약 opts[:write_concern]
      writeConcern.get(opts[:write_concern])
    other
      write_concern_with_session(Session)
    end

    만약 문서.nil?
      올리다 ArgumentError, "삽입할 문서는 nil일 수 없습니다"
    end

    컨텍스트 = 작업::Context.신규(클라이언트: 고객, 세션: Session)
    write_with_retry(write_concern, 컨텍스트: 컨텍스트) do |연결, txn_num, 컨텍스트|
      작업::Insert.신규(
        :documents => [ 문서 ],
        :db_name => database.이름,
        :coll_name => 이름,
        :write_concern => write_concern,
        :bypass_document_validation => !!opts[:bypass_document_validation],
        :options => opts,
        :id_generator => 고객.옵션[:id_generator],
        :session => Session,
        :txn_num => txn_num,
        :comment => opts[:comment]
      ).execution_with_connection(연결, 컨텍스트: 컨텍스트)
    end
  end
end

#검사string

컬렉션 에 대한 예쁜 인쇄된 string 검사를 가져옵니다.

예시:

컬렉션 을 검사합니다.

collection.inspect

반환합니다:

  • (string)

    컬렉션 검사.

이후:

  • 2.0.0



741
742
743
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 741

def 검사
  "#<Mongo::Collection:0x#{object_id} 네임스페이스=#{네임스페이스}>"
end

#네임스페이스string

컬렉션 의 정규화된 네임스페이스 를 가져옵니다.

예시:

정규화된 네임스페이스 를 가져옵니다.

collection.namespace

반환합니다:

  • (string)

    컬렉션 네임스페이스.

이후:

  • 2.0.0



1117
1118
1119
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 1117

def namespace
  "#{데이터베이스.name}.#{name}"
end

#parallel_scan(cursor_count, options = {}) ⇒ Array<Cursor>

collection 보기에서 병렬 스캔을 실행합니다.

동시에 반복할 수 있는 최대 cursor_count개의 커서 목록을 반환합니다. 스캔 중에 컬렉션이 수정되지 않는 한 각 문서는 커서의 결과 세트 중 하나에 한 번씩 나타납니다.

예시:

병렬 컬렉션 스캔을 실행합니다.

collection.parallel_scan(2)

매개변수:

  • cursor_count (정수)

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

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

    병렬 스캔 명령 옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    명령이 실행 수 있는 최대 시간(밀리초)입니다.

  • :session (세션)

    사용할 세션입니다.

반환합니다:

  • (Array<Cursor>)

    커서 배열입니다.

이후:

  • 2.1



912
913
914
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 912

def parallel_scan(cursor_count, 옵션 = {})
  찾기({}, 옵션).send(:parallel_scan, cursor_count, 옵션)
end

#read_concern해시

이 컬렉션 인스턴스에 대한 유효 읽기 고려를 가져옵니다.

컬렉션 옵션에 읽기 고려가 제공된 경우 해당 읽기 고려가 반환되고, 그렇지 않으면 데이터베이스의 유효 읽기 고려가 반환됩니다.

예시:

읽기 고려를 가져옵니다.

collection.read_concern

반환합니다:

  • (해시)

    읽기 고려.

이후:

  • 2.2.0



188
189
190
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 188

def read_concern
  옵션[:read_concern] || database.read_concern
end

#read_preference해시

이 컬렉션 에 대한 유효 읽기 설정 (read preference) 을 가져옵니다.

컬렉션 옵션에 읽기 기본 설정이 제공된 경우 해당 읽기 기본 설정이 반환되고, 그렇지 않으면 데이터베이스의 유효 읽기 기본 설정이 반환됩니다.

예시:

읽기 설정을 가져옵니다.

collection.read_preference

반환합니다:

  • (해시)

    읽기 설정 (read preference).

이후:

  • 2.0.0



216
217
218
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 216

def read_preference
  @read_preference ||= 옵션[:read] || database.read_preference
end

#replace_one(필터하다, 교체, 옵션 = {}) ⇒ 결과

컬렉션의 단일 문서를 새 문서로 바꿉니다.

예시:

단일 문서 를 교체합니다.

collection.replace_one({ name: 'test' }, { name: 'test1' })

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

  • 교체 (해시)

    대체 문서..

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

    옵션.

옵션 해시(options):

  • : 업서트 (true | false)

    문서 가 존재하지 않는 경우 업서트 할지 여부입니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (결과)

    데이터베이스 의 응답입니다.

이후:

  • 2.1.0



939
940
941
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 939

def replace_one(필터, 교체, 옵션 = {})
  찾기(필터, 옵션).replace_one(교체, 옵션)
end

#server_selectorMongo::ServerSelector

이 컬렉션 에 대한 서버 선택기를 가져옵니다.

예시:

서버 선택기를 가져옵니다.

collection.server_selector

반환합니다:

이후:

  • 2.0.0



200
201
202
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 200

def server_selector
  @server_selector ||= ServerSelector.get(read_preference || database.server_selector)
end

#system_collection?부울

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

컬렉션이 시스템 컬렉션인지 여부입니다.

반환합니다:

  • (부울)

    시스템이 시스템 컬렉션 인지 여부입니다.

이후:

  • 2.0.0



1126
1127
1128
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 1126

def system_collection?
  이름.start_with?('시스템.')
end

#update_many(filter, update, options = {}) ⇒ Result

컬렉션 의 문서를 업데이트합니다.

예시:

컬렉션 에서 여러 문서를 업데이트합니다.

collection.update_many({ name: 'test'}, '$set' => { name: 'test1' })

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

  • update (해시 | Array<Hash>)

    업데이트 문서 또는 파이프라인.

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

    옵션.

옵션 해시(options):

  • : 업서트 (true | false)

    문서 가 존재하지 않는 경우 업서트 할지 여부입니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :collation (해시)

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

  • :array_filters (배열)

    업데이트 를 적용 해야 하는 배열 요소를 지정하는 필터 설정하다 입니다.

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (결과)

    데이터베이스 의 응답입니다.

이후:

  • 2.1.0



968
969
970
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 968

def update_many(필터, update, 옵션 = {})
  찾기(필터, 옵션).update_many(update, 옵션)
end

#update_one(filter, update, options = {}) ⇒ Result

컬렉션 에서 단일 문서 를 업데이트합니다.

예시:

컬렉션 에서 단일 문서 를 업데이트합니다.

collection.update_one({ name: 'test'}, '$set' => { name: 'test1'})

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

  • update (해시 | Array<Hash>)

    업데이트 문서 또는 파이프라인.

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

    옵션.

옵션 해시(options):

  • : 업서트 (true | false)

    문서 가 존재하지 않는 경우 업서트 할지 여부입니다.

  • :bypass_document_validation (true | false)

    문서 수준 유효성 검사 를 건너뛸지 여부입니다.

  • :collation (해시)

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

  • :array_filters (배열)

    업데이트 를 적용 해야 하는 배열 요소를 지정하는 필터 설정하다 입니다.

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

    이 작업에 사용할 인덱스입니다. 해시(예: { _id: 1 }) 또는 string (예: 'ID ').

  • :let (해시)

    명령에 사용할 변수를 매핑합니다. 자세한 내용은 서버 설명서를 참조하세요.

반환합니다:

  • (결과)

    데이터베이스 의 응답입니다.

이후:

  • 2.1.0



997
998
999
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 997

def update_one(필터, update, 옵션 = {})
  찾기(필터, 옵션).update_one(update, 옵션)
end

#watch(파이프라인 = [], options = {}) ⇒ ChangeStream

참고:

변경 스트림 은 '대다수' 읽기 고려 (read concern) 만 허용합니다.

참고:

재개 가능성을 지원할 목적으로 $changeStream 단계로 원시 애그리게이션을 실행하는 것보다 이 헬퍼 메서드를 사용하는 것이 좋습니다.

MongoDB 서버 버전 3.6 부터 애그리게이션 프레임워크에서 '$changeStream' 파이프라인 단계가 지원됩니다. 이 단계에서는 사용자가 특정 컬렉션의 모든 변경 사항에 대해 알림을 보내도록 요청할 수 있습니다.

예시:

특정 컬렉션에 대한 변경 알림을 받습니다.

collection.watch([{ '$match' => { operationType: { '$in' => ['insert', 'replace'] } } }])

매개변수:

  • 파이프라인 (Array<Hash>) (기본값: [])

    선택적 추가 필터 연산자.

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

    변경 스트림 옵션.

옵션 해시(options):

  • :full_document (string)

    허용되는 값: nil, 'default', 'updateLookup', 'whenAvailable', 'required'.

    기본값은 값을 전송하지 않는 것입니다(예: nil)이며, 'default'와 동일합니다. 기본적으로 부분 업데이트에 대한 변경 알림에는 문서의 변경 사항을 설명하는 델타가 포함됩니다.

    'updateLookup'으로 설정하면 부분 업데이트에 대한 변경 알림에 문서의 변경 사항을 설명하는 델타와 변경 발생 후 일정 기간 동안 변경된 전체 문서의 사본이 모두 포함됩니다.

    'whenAvailable'로 설정하면 이 이벤트에 대한 사후 이미지를 사용할 수 있는 경우 교체 및 업데이트 변경 이벤트에 대해 수정된 문서의 사후 이미지를 반환하도록 변경 스트림을 구성합니다.

    '필수'로 설정하면 사후 이미지를 사용할 수 없는 경우 오류가 발생한다는 점을 제외하면 'whenAvailable'과 동작이 동일합니다.

  • :full_document_before_change (string)

    허용되는 값: nil, 'whenAvailable', 'required', 'off'.

    기본값은 값을 전송하지 않는 것입니다(예: nil)은 'off'와 동일합니다.

    'whenAvailable'로 설정하면 사용 가능한 경우 바꾸기, 업데이트 및 삭제 변경 이벤트에 대해 수정된 문서의 사전 이미지를 반환하도록 변경 스트림을 구성합니다.

    '필수'로 설정하면, 사전 이미지를 사용할 수 없는 경우 오류가 발생한다는 점을 제외하면 'whenAvailable'과 동작이 동일합니다.

  • :resume_after (BSON::Document, Hash)

    새 변경 스트림의 논리적 시작점을 지정합니다.

  • :max_await_time_ms (정수)

    서버가 변경 스트림 쿼리를 충족하기 위해 새 문서를 기다리는 최대 시간입니다.

  • :batch_size (정수)

    배치당 반환할 문서 수입니다.

  • :collation (BSON::Document, Hash)

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

  • :session (세션)

    사용할 세션입니다.

  • :start_at_operation_time (BSON::Timestamp)

    지정된 타임스탬프 또는 그 이후에 발생한 변경 사항만 반환합니다. 서버에 대해 명령을 실행하면 여기에서 사용할 수 있는 클러스터 시간이 반환됩니다. 서버 버전 4.0이상에서만 인식됩니다.

  • :comment (객체)

    이 명령에 첨부할 사용자 제공 코멘트입니다.

  • :show_expanded_events (부울)

    서버가 변경 스트림 이벤트의 '확장' 목록을 보낼 수 있도록 합니다. 이 플래그 세트에 포함된 추가 이벤트 목록은 createIndexes, dropIndexes, Modify, create, shardCollection, reshardCollection, refineCollectionShardKey입니다.

반환합니다:

  • (ChangeStream)

    변경 스트림 객체입니다.

이후:

  • 2.5.0



607
608
609
610
611
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 607

def 시계(파이프라인 = [], 옵션 = {})
  view_options = 옵션.dup
  view_options[:await_data] = true 만약 옵션[:max_await_time_ms]
  보기::Change Stream.신규(보기.신규(self, {}, view_options), 파이프라인, nil, 옵션)
end

#with(new_options) ⇒ Mongo::Collection

반환값 새 컬렉션 인스턴스 반환합니다.

예시:

읽기 고려가 변경된 컬렉션을 가져옵니다.

collection.with(read_concern: { level: :majority })

쓰기 고려 (write concern) 가 변경된 컬렉션 을 가져옵니다.

collection.with(write_concern: { w:  3 })

매개변수:

  • new_options (해시)

    사용할 수 있는 새로운 옵션.

옵션 해시(new_options):

  • :read (해시)

    읽기 설정 옵션. 해시에는 다음과 같은 항목이 있을 수 있습니다.

    • : 모드 - 기호로 지정된 읽기 설정 (read preference) . 유효한 값은 프라이머리, :primary_preferred, : 세컨더리, :secondary_preferred:nearest 입니다.

    • :tag_sets - 해시 배열입니다.

    • :local_threshold.

  • :read_concern (해시)

    다음과 같은 선택적 키가 있는 읽기 고려 (read concern) 옵션 해시입니다.

    • :level - 읽기 설정 (read preference) 레벨을 기호로 표시합니다. 유효한 값

      are *:local*, *:majority*, and *:snapshot*
      
  • :write (해시)

    더 이상 사용되지 않습니다. :write_concern 옵션과 동일합니다.

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션. :w => Integer|String, : fsync => Boolean, :j => Boolean일 수 있습니다.

반환합니다:

이후:

  • 2.1.0



294
295
296
297
298
299
300
301
302
303
304
305
306
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 294

def (new_options)
  new_options.. do |k|
    올리다 오류::UnchangeableCollectionOption.신규(k) 하지 않는 한 CHANGEABLE_OPTIONS.포함?(k)
  end
  옵션 = @options.dup
  만약 옵션[:write] && new_options[:write_concern]
    옵션.삭제(:write)
  end
  만약 옵션[:write_concern] && new_options[:write]
    옵션.삭제(:write_concern)
  end
  컬렉션.신규(database, 이름, 옵션.update(new_options))
end

#write_concernMongo::WriteConcern

이 컬렉션에 대한 유효 쓰기 고려를 가져옵니다.

컬렉션 옵션에 쓰기 고려가 제공된 경우 해당 쓰기 고려가 반환되고, 그렇지 않으면 데이터베이스의 유효 쓰기 고려가 반환됩니다.

예시:

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

collection.write_concern

반환합니다:

이후:

  • 2.0.0



232
233
234
235
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 232

def write_concern
  @write_concern ||= writeConcern.get(
    옵션[:write_concern] || 옵션[:write] || database.write_concern)
end

#write_concern_with_session(세션) ⇒ Mongo::WriteConcern

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

지정된 세션에서 이 컬렉션 에 대한 작업에 사용할 쓰기 고려 (write concern) 고려를 가져옵니다.

세션이 트랜잭션 중이고 컬렉션에 승인되지 않은 쓰기 고려가 있는 경우 쓰기 고려의 :w 옵션을 제거합니다. 그렇지 않으면 수정되지 않은 쓰기 고려를 반환합니다.

반환합니다:

이후:

  • 2.0.0



248
249
250
251
252
253
254
255
256
257
258
# 파일 'build/ruby-driver-v2.19/lib/mongo/collection.rb', 줄 248

def write_concern_with_session(Session)
  wc = write_concern
  만약 Session && Session.in_transaction?
    만약 wc && !wc.인정?
      opts = wc.옵션.dup
      opts.삭제(:w)
      반환 writeConcern.get(opts)
    end
  end
  wc
end