클래스: Mongo::Collection

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
헬퍼, QueryableEncryption, 재시도 가능
다음에 정의됨:
lib/mongo/collection.rb,
lib/mongo/collection/view.rb,
lib/mongo/collection/helpers.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/queryable_encryption.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

개요

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

이후:

  • 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.

  • :session (세션)

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

  • :size (정수)

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

  • :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 database or the client.

다음을 발생시킵니다.

이후:

  • 2.0.0



162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# File 'lib/mongo/collection.rb', line 162

def 초기화(database, 이름, 옵션 = {})
  올리다 오류::InvalidCollectionName.신규 하지 않는 한 이름
  만약 옵션[:write] && 옵션[:write_concern] && 옵션[:write] != 옵션[:write_concern]
    올리다 ArgumentError, ":write 및 :write_concern이 모두 지정된 경우, 둘 다 동일해야 합니다: #{options.검사}"
  end
  @database = database
  @name = 이름.to_s.동결
  @options = 옵션.dup
  @timeout_ms = 옵션.삭제(:timeout_ms)
=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
# File 'lib/mongo/collection.rb', line 46

def database
  @database
end

#이름string (읽기 전용)

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

반환합니다:

  • (string)

    컬렉션의 이름입니다.

이후:

  • 2.0.0



49
50
51
# File 'lib/mongo/collection.rb', line 49

def 이름
  @name
end

#options해시 (읽기 전용)

반환값 컬렉션 옵션.

반환합니다:

  • (해시)

    컬렉션 옵션.

이후:

  • 2.0.0



52
53
54
# File 'lib/mongo/collection.rb', line 52

def 옵션
  @options
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true | false

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

예시:

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

collection == other

매개변수:

  • 기타 (객체)

    확인할 객체 입니다.

반환합니다:

  • (true | false)

    객체가 동일한 경우.

이후:

  • 2.0.0



89
90
91
92
# File 'lib/mongo/collection.rb', line 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 (정수)

    The maximum amount of time to allow the query to run, in milliseconds. This option is deprecated, use :timeout_ms instead.

  • :session (세션)

    사용할 세션입니다.

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

이후:

  • 2.1.0



568
569
570
# File 'lib/mongo/collection.rb', line 568

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 (세션)

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :let (해시)

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

반환합니다:

이후:

  • 2.0.0



942
943
944
# File 'lib/mongo/collection.rb', line 942

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

#고정?true | false

컬렉션 제한이 있나요?

예시:

컬렉션 제한이 있나요?

collection.capped?

반환합니다:

  • (true | false)

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

이후:

  • 2.0.0



321
322
323
324
325
# File 'lib/mongo/collection.rb', line 321

def 고정?
  database.list_collections(필터: { 이름: 이름 })
    .first
    &.dig('options', 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 (정수)

    The maximum amount of time to allow the query to run, in milliseconds. This option is deprecated, use :timeout_ms instead.

  • :skip (정수)

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

  • :read (해시)

    읽기 설정 (read preference) 옵션.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :comment (객체)

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (정수)

    문서 수입니다.

이후:

  • 2.1.0



685
686
687
# File 'lib/mongo/collection.rb', line 685

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

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (정수)

    문서 수입니다.

이후:

  • 2.6.0



719
720
721
# File 'lib/mongo/collection.rb', line 719

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 (해시)

    The collation to use when creating the collection. This option will not be sent to the server when calling collection methods.

  • :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



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
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
# File 'lib/mongo/collection.rb', line 382

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 ').

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :let (해시)

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

반환합니다:

  • (결과)

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

이후:

  • 2.1.0



994
995
996
# File 'lib/mongo/collection.rb', line 994

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

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

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

예시:

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

collection.delete_one

매개변수:

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

    사용할 필터하다 입니다.

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

    옵션.

옵션 해시(options):

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :hint (해시 | string)

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :let (해시)

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

반환합니다:

  • (결과)

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

이후:

  • 2.1.0



968
969
970
# File 'lib/mongo/collection.rb', line 968

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 (정수)

    The maximum amount of time to allow the query to run, in milliseconds. This option is deprecated, use :timeout_ms instead.

  • :read (해시)

    읽기 설정 (read preference) 옵션.

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (Array<Object>)

    고유 값 목록입니다.

이후:

  • 2.1.0



771
772
773
# File 'lib/mongo/collection.rb', line 771

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



454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
# File 'lib/mongo/collection.rb', line 454

def 제거(opts = {})
  고객.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,
        operation_timeouts: operation_timeout(opts)
      )
      작업 = 작업::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 (객체)

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (정수)

    문서 수입니다.

이후:

  • 2.6.0



744
745
746
# File 'lib/mongo/collection.rb', line 744

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 (정수)

    The maximum amount of time to allow the query to run, in milliseconds. This option is deprecated, use :timeout_ms instead.

  • :modifiers (해시)

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

  • :no_cursor_timeout (true | false)

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

  • :oplog_replay (true | false)

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

  • :projection (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :skip (정수)

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

  • :sort (해시)

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

  • :timeout_mode (:cursor_Lifetime | :iteration)

    :timeout_ms를 해석하는 방법( 커서 의 수명에 적용되는지 또는 반복별로 적용되는지 여부).

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :let (해시)

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

반환합니다:

  • (CollectionView)

    컬렉션 보기입니다.

이후:

  • 2.0.0



532
533
534
# File 'lib/mongo/collection.rb', line 532

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

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

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

예시:

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

collection.find_one_and_delete(name: 'test')

매개변수:

  • 필터 (해시)

    사용할 필터하다 입니다.

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

    옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    The maximum amount of time to allow the query to run, in milliseconds. This option is deprecated, use :timeout_ms instead.

  • :projection (해시)

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

  • :sort (해시)

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

  • :write_concern (해시)

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

  • :collation (해시)

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

  • :session (세션)

    사용할 세션입니다.

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :hint (해시 | string)

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

  • :let (해시)

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

반환합니다:

  • (BSON::Document, nil)

    문서(있는 경우).

이후:

  • 2.1.0



1157
1158
1159
# File 'lib/mongo/collection.rb', line 1157

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 ').

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :let (해시)

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

반환합니다:

  • (BSON::Document)

    문서입니다.

이후:

  • 2.1.0



1243
1244
1245
# File 'lib/mongo/collection.rb', line 1243

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 (해시)

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (BSON::Document)

    문서입니다.

이후:

  • 2.1.0



1201
1202
1203
# File 'lib/mongo/collection.rb', line 1201

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

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

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

예시:

인덱스 뷰를 가져옵니다.

collection.indexes

매개변수:

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

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

옵션 해시(options):

  • :session (세션)

    사용할 세션입니다.

반환합니다:

이후:

  • 2.0.0



788
789
790
# File 'lib/mongo/collection.rb', line 788

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 (세션)

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

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :write_concern (해시)

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

반환합니다:

  • (결과)

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

이후:

  • 2.0.0



910
911
912
913
914
915
# File 'lib/mongo/collection.rb', line 910

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



849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
# File 'lib/mongo/collection.rb', line 849

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

  고객.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,
      operation_timeouts: operation_timeout(opts)
      )
    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



822
823
824
# File 'lib/mongo/collection.rb', line 822

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

#네임스페이스string

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

예시:

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

collection.namespace

반환합니다:

  • (string)

    컬렉션 네임스페이스.

이후:

  • 2.0.0



1255
1256
1257
# File 'lib/mongo/collection.rb', line 1255

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

#operation_timeouts(opts = {}) ⇒ 해시

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

작업 수준에서 설정하다 timeout_ms 값(있는 경우) 및/또는 컬렉션/ 데이터베이스/ 클라이언트 수준(있는 경우)에 설정하다 timeout_ms를 반환합니다.

반환합니다:

  • (해시)

    작업 수준에서 설정하다 timeout_ms 값(있는 경우) 및/또는 컬렉션/ 데이터베이스/ 클라이언트 수준(있는 경우)에 설정하다 timeout_ms입니다.

이후:

  • 2.0.0



1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
# File 'lib/mongo/collection.rb', line 1280

def operation_timeout(opts = {})
  # TODO: We should re-evaluate if we need two timeouts separately.
  {}. do |결과|
    만약 opts[:timeout_ms].nil?
      결과[:inherited_timeout_ms] = timeout_ms
    other
      결과[:operation_timeout_ms] = opts.삭제(:timeout_ms)
    end
  end
end

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

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

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

예시:

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

collection.parallel_scan(2)

매개변수:

  • cursor_count (정수)

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

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

    병렬 스캔 명령 옵션.

옵션 해시(options):

  • :max_time_ms (정수)

    The maximum amount of time to allow the query to run, in milliseconds. This option is deprecated, use :timeout_ms instead.

  • :session (세션)

    사용할 세션입니다.

  • :timeout_mode (:cursor_Lifetime | :iteration)

    :timeout_ms를 해석하는 방법( 커서 의 수명에 적용되는지 또는 반복별로 적용되는지 여부).

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (Array<Cursor>)

    커서 배열입니다.

이후:

  • 2.1



1025
1026
1027
# File 'lib/mongo/collection.rb', line 1025

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

#read_concern해시

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

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

예시:

읽기 고려를 가져옵니다.

collection.read_concern

반환합니다:

  • (해시)

    읽기 고려.

이후:

  • 2.2.0



193
194
195
# File 'lib/mongo/collection.rb', line 193

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

#read_preference해시

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

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

예시:

읽기 설정을 가져옵니다.

collection.read_preference

반환합니다:

  • (해시)

    읽기 설정 (read preference).

이후:

  • 2.0.0



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

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 (세션)

    사용할 세션입니다.

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :hint (해시 | string)

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

  • :let (해시)

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

반환합니다:

  • (결과)

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

이후:

  • 2.1.0



1056
1057
1058
# File 'lib/mongo/collection.rb', line 1056

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

#search_indexes(options = {}) ⇒ SearchIndex::View

참고:

Only one of id or name may be given; it is an error to specify both, although both may be omitted safely.

Get a view of all search indexes for this collection. Can be iterated or operated on directly. If id or name are given, the iterator will return only the indicated index. For all other operations, id and name are ignored.

매개변수:

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

    The options to use to configure the view.

옵션 해시(options):

  • :id (string)

    쿼리 할 특정 인덱스 의 ID(선택 사항)

  • :name (string)

    쿼리 할 특정 인덱스 의 이름(선택 사항)

  • :aggregate (해시)

    집계 명령에 전달할 옵션 해시(선택 사항)

반환합니다:

이후:

  • 2.0.0



810
811
812
# File 'lib/mongo/collection.rb', line 810

def search_indexes(옵션 = {})
  SearchIndex::보기.신규(self, 옵션)
end

#server_selectorMongo::ServerSelector

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

예시:

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

collection.server_selector

반환합니다:

이후:

  • 2.0.0



205
206
207
# File 'lib/mongo/collection.rb', line 205

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

#system_collection?부울

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

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

반환합니다:

  • (부울)

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

이후:

  • 2.0.0



1264
1265
1266
# File 'lib/mongo/collection.rb', line 1264

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

#timeout_ms정수 | nil

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

Returns Operation timeout that is for this database or for the corresponding client.

반환합니다:

  • (정수 | nil)

    Operation timeout that is for this database or for the corresponding client.

이후:

  • 2.0.0



1272
1273
1274
# File 'lib/mongo/collection.rb', line 1272

def timeout_ms
  @timeout_ms || database.timeout_ms
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 (세션)

    사용할 세션입니다.

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :hint (해시 | string)

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

  • :let (해시)

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

반환합니다:

  • (결과)

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

이후:

  • 2.1.0



1089
1090
1091
# File 'lib/mongo/collection.rb', line 1089

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 (세션)

    사용할 세션입니다.

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

  • :hint (해시 | string)

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

  • :let (해시)

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

반환합니다:

  • (결과)

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

이후:

  • 2.1.0



1122
1123
1124
# File 'lib/mongo/collection.rb', line 1122

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입니다.

  • :timeout_mode (:cursor_Lifetime | :iteration)

    :timeout_ms를 해석하는 방법( 커서 의 수명에 적용되는지 또는 반복별로 적용되는지 여부).

  • :timeout_ms (정수)

    작업 시간 제한(밀리초)입니다. 음수가 아닌 정수여야 합니다. 0 의 명시적 값은 무한대를 의미합니다. 기본값 은 설정되지 않았으며 이는 값이 컬렉션 , 데이터베이스 또는 클라이언트 에서 상속됨을 의미합니다.

반환합니다:

  • (ChangeStream)

    변경 스트림 객체입니다.

이후:

  • 2.5.0



646
647
648
649
650
# File 'lib/mongo/collection.rb', line 646

def 시계(파이프라인 = [], 옵션 = {})
  view_options = 옵션.dup
  view_options[:cursor_type] = :tailable_await 만약 옵션[: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



299
300
301
302
303
304
305
306
307
308
309
310
311
# File 'lib/mongo/collection.rb', line 299

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



237
238
239
240
# File 'lib/mongo/collection.rb', line 237

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



253
254
255
256
257
258
259
260
261
262
263
# File 'lib/mongo/collection.rb', line 253

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