클래스: Mongo::Database

상속:
객체
  • 객체
모두 표시
확장자:
전달 가능
다음을 포함합니다.
재시도 가능
다음에 정의됨:
lib/mongo/database.rb,
lib/mongo/database/view.rb

개요

db 서버 의 데이터베이스 와 이 수준에서 실행할 수 있는 작업을 나타냅니다.

이후:

  • 2.0.0

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

클래스: 보기

상수 요약 접기

ADMIN =

관리 데이터베이스 이름입니다.

이후:

  • 2.0.0

'관리자'
명령 =

데이터베이스 명령이 작동하는 ' 컬렉션 "입니다.

이후:

  • 2.0.0

'$cmd'
DEFAULT_OPTIONS =

기본값 데이터베이스 옵션입니다.

이후:

  • 2.0.0

옵션::편집됨.신규(database: ADMIN).동결
NAME =
더 이상 사용되지 않습니다.

데이터베이스 이름 필드 상수입니다.

이후:

  • 2.1.0

'이름'
데이터베이스 =

데이터베이스 상수입니다.

이후:

  • 2.1.0

'databases'
NAMESPACES =

모든 컬렉션 이름을 포함하는 컬렉션 의 이름입니다.

이후:

  • 2.0.0

'system.namespaces'

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

Retryable에 포함된 메서드

#read_Worker, #select_server, #with_overload_retry, #write_Worker

생성자 세부 정보

#initialize(클라이언트, name, options = {}) ⇒ 데이터베이스

새 데이터베이스 객체 를 인스턴스화합니다.

예시:

데이터베이스 를 인스턴스화합니다.

Mongo::Database.new(client, :test)

매개변수:

  • 고객 (Mongo::Client)

    운전자 클라이언트.

  • 이름 (string, 기호)

    데이터베이스의 이름입니다.

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

    옵션.

옵션 해시(options):

  • :timeout_ms (정수)

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

다음을 발생시킵니다.

  • (Mongo::Database::InvalidName)

    이름이 nil인 경우.

이후:

  • 2.0.0



365
366
367
368
369
370
371
372
373
374
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 365

def 초기화(고객, 이름, 옵션 = {})
  올리다 오류::InvalidDatabaseName.신규 하지 않는 한 이름
  만약 Lint.활성화? && !(이름.is_a?(문자열) || 이름.is_a?(기호))
    올리다 "데이터베이스 이름은 string 또는 기호여야 합니다: #{name}"
  end

  @client = 고객
  @name = 이름.to_s.동결
  @options = 옵션.동결
end

인스턴스 속성 세부 정보

#클라이언트클라이언트 (읽기 전용)

반환값 클라이언트 데이터베이스 클라이언트 입니다.

반환합니다:

  • (클라이언트)

    클라이언트 데이터베이스 클라이언트입니다.

이후:

  • 2.0.0



60
61
62
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 60

def 고객
  @client
end

#이름string (읽기 전용)

반환값 name 데이터베이스 의 이름입니다.

반환합니다:

  • (string)

    name 데이터베이스 의 이름입니다.

이후:

  • 2.0.0



63
64
65
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 63

def 이름
  @name
end

#options해시 (읽기 전용)

반환값 options options.

반환합니다:

  • (해시)

    options 옵션입니다.

이후:

  • 2.0.0



66
67
68
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 66

def 옵션
  @options
end

클래스 메서드 세부 정보

.create(클라이언트) ⇒ 데이터베이스

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

클라이언트의 원래 데이터베이스 인스턴스 동일하지 않도록 하는 데 사용할 수 있도록 제공된 클라이언트 에 대한 데이터베이스 만듭니다.

예시:

클라이언트 에 대한 데이터베이스 를 만듭니다.

Database.create(client)

매개변수:

반환합니다:

이후:

  • 2.0.0



546
547
548
549
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 546

def self.create(고객)
  database = Database.신규(고객, 고객.옵션[:database], 고객.옵션)
  고객.instance_variable_set(:@database, database)
end

인스턴스 메서드 세부 정보

#==(기타) ⇒ true, false

데이터베이스 객체 가 다른 객체와 동일한지 확인합니다. 이름이 동일한지 간단히 확인합니다.

예시:

데이터베이스 동등성을 확인합니다.

database == other

매개변수:

  • 기타 (객체)

    확인할 객체입니다.

반환합니다:

  • (true, false)

    객체가 동일한 경우.

이후:

  • 2.0.0



93
94
95
96
97
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 93

def ==(기타)
  반환 거짓 하지 않는 한 기타.is_a?(Database)

  이름 == 기타.이름
end

#[](collection_name, options = {}) ⇒ Mongo::Collection ~ 라고도 함: 컬렉션

제공된 이름으로 이 데이터베이스 에서 컬렉션 을 가져옵니다.

예시:

컬렉션 을 가져옵니다.

database[:users]

매개변수:

  • collection_name (string, 기호)

    컬렉션의 이름입니다.

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

    컬렉션에 대한 옵션입니다.

반환합니다:

이후:

  • 2.0.0



110
111
112
113
114
115
116
117
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 110

def [](collection_name, 옵션 = {})
  만약 옵션[:server_api]
    올리다 ArgumentError,
          ':server_api 옵션은 컬렉션 객체에 지정할 수 없습니다. 클라이언트 수준'
  end

  컬렉션.신규(self, collection_name, 옵션)
end

#aggregate(pipeline, options = {}) ⇒ Collection::View::Aggregation

데이터베이스 에서 집계 을 수행합니다.

예시:

집계 을 수행합니다.

collection.aggregate([ { "$listLocalSessions" => {} } ])

매개변수:

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

    집계 파이프라인.

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

    애그리게이션 옵션.

옵션 해시(options):

  • :allow_disk_use (true, false)

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

  • :batch_size (정수)

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

  • :bypass_document_validation (true, false)

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

  • :collation (해시)

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

  • :comment (객체)

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

  • :max_time_ms (정수)

    쿼리 실행 허용하는 최대 시간(밀리초)입니다. 이 옵션은 더 이상 사용되지 않으므로 대신 :timeout_ms를 사용하세요.

  • :timeout_ms (정수)

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

  • :hint (string)

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

  • :session (세션)

    사용할 세션입니다.

반환합니다:

이후:

  • 2.10.0



454
455
456
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 454

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

#clusterMongo::Server

반환값 클러스터 에서 프라이머리 서버 를 가져옵니다.

반환합니다:

  • (Mongo::Server)

    클러스터 에서 프라이머리 서버 를 가져옵니다.

이후:

  • 2.0.0



79
80
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 79

def_delegators :cluster,
:next_primary

#collection_names(options = {}) ⇒ Array<String>

참고:

반환되는 컬렉션 이름 집합은 요청을 처리하는 MongoDB 서버의 버전에 따라 달라집니다.

데이터베이스 에 있는 비시스템 컬렉션의 모든 이름을 가져옵니다.

See https://mongodb.com/ko-kr/docs/manual/reference/command/listCollections/
for more information and usage.

매개변수:

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

옵션 해시(options):

  • :filter (해시)

    반환된 컬렉션에 대한 필터입니다.

  • :authorized_collections (true, false)

    true로 설정하다 하고 nameOnly: true와 함께 사용하면 액세스 제어가 시행될 때 필요한 권한 이 없는 사용자도 명령을 실행 수 있는 플래그입니다.

  • :comment (객체)

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

  • :timeout_ms (정수)

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

반환합니다:

  • (Array<String>)

    컬렉션의 이름입니다.

이후:

  • 2.0.0



144
145
146
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 144

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

collection #collection(options = {}) ⇒ Array<Mongo::Collection>

참고:

반환되는 컬렉션 설정하다 는 요청 을 처리하는 MongoDB 서버 의 버전에 따라 달라집니다.

이 데이터베이스 에 속하는 모든 비시스템 컬렉션을 가져옵니다.

See https://mongodb.com/ko-kr/docs/manual/reference/command/listCollections/
for more information and usage.

매개변수:

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

옵션 해시(options):

  • :filter (해시)

    반환된 컬렉션에 대한 필터입니다.

  • :authorized_collections (true, false)

    true로 설정하다 하고 name_only: true와 함께 사용하면 액세스 제어가 시행될 때 필요한 권한 이 없는 사용자도 명령을 실행 수 있는 플래그입니다.

  • :comment (객체)

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

  • :timeout_ms (정수)

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

반환합니다:

이후:

  • 2.0.0



205
206
207
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 205

def collections(옵션 = {})
  collection_names(옵션).map { |이름| 컬렉션(이름) }
end

#command(operation, opts = {}) ⇒ Mongo::Operation::Result

데이터베이스에서 명령을 실행합니다.

예시:

명령을 실행합니다.

database.command(:hello => 1)

매개변수:

  • 작업 (해시)

    실행할 명령입니다.

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

    명령 옵션.

  • 옵션 (해시)

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

옵션 해시(opts):

  • :read (해시)

    이 명령에 대한 읽기 설정 (read preference) 입니다.

  • :session (세션)

    이 명령에 사용할 세션입니다.

  • :execution_options (해시)

    이 명령을 실행하는 코드에 전달할 옵션입니다. 이는 내부 옵션이며 변경될 수 있습니다.

    • :deserialize_as_bson [ Boolean ] 가능한 경우 네이티브 Ruby 유형 대신 BSON 유형을 사용하여 이 명령에 대한 응답을 역직렬화할지 여부입니다.

반환합니다:

이후:

  • 2.0.0



231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 231

def 명령(작업, opts = {})
  opts = opts.dup
  execution_opts = opts.삭제(:execution_options) || {}

  txn_read_pref = (opts[:session].txn_read_preference 만약 opts[:session] && opts[:session].in_transaction?)
  txn_read_pref ||= opts[:read] || ServerSelector::기본
  Lint.validate_underscore_read_preference(txn_read_pref)
  선택기 = ServerSelector.get(txn_read_pref)

  고객.with_session(opts) do |Session|
    컨텍스트 = 작업::Context.신규(
      클라이언트: 고객,
      세션: Session,
      operation_timeout: operation_timeout(opts)
    )
    op = 작업::명령.신규(
      선택기: 작업,
      db_name: 이름,
      읽기: 선택기,
      세션: Session
    )

    retry_enabled = 고객.옵션[:retry_reads] != 거짓 &&
                    고객.옵션[:retry_writes] != 거짓
    with_overload_retry(컨텍스트: 컨텍스트, retry_enabled: retry_enabled) do
      서버 = 선택기.select_server(cluster, nil, Session)
      op.실행(서버, 컨텍스트: 컨텍스트, 옵션: execution_opts)
    end
  end
end

#drop(options = {}) ⇒ Result

데이터베이스 와 모든 관련 정보를 삭제합니다.

예시:

데이터베이스를 제거합니다.

database.drop

매개변수:

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

    작업에 대한 옵션입니다.

옵션 해시(options):

  • :session (세션)

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

  • :write_concern (해시)

    쓰기 고려 (write concern) 옵션.

  • :timeout_ms (정수)

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

반환합니다:

  • (결과)

    명령의 결과입니다.

이후:

  • 2.0.0



325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 325

def 제거(옵션 = {})
  작업 = { dropDatabase: 1 }
  고객.with_session(옵션) do |Session|
    write_concern = 만약 옵션[:write_concern]
                      writeConcern.get(옵션[:write_concern])
                    other
                      self.write_concern
                    end
    작업::데이터베이스 삭제.신규({
                                  선택기: 작업,
                                  db_name: 이름,
                                  write_concern: write_concern,
                                  세션: Session
                                }).실행(
                                  Next_primary(nil, Session),
                                  컨텍스트: 작업::Context.신규(
                                    클라이언트: 고객,
                                    세션: Session,
                                    operation_timeout: operation_timeout(옵션)
                                  )
                                )
  end
end

#fs(options = {}) ⇒ Grid::FSBucket

이 데이터베이스 에 대한 그리드 '파일 시스템'을 가져옵니다.

매개변수:

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

    GridFS 옵션.

옵션 해시(options):

  • :bucket_name (string)

    파일 및 청크 컬렉션의 접두사입니다.

  • :chunk_size (정수)

    기본값 청크 크기를 재정의합니다.

  • :fs_name (string)

    파일 및 청크 컬렉션의 접두사입니다.

  • :read (string)

    읽기 설정 (read preference).

  • :session (세션)

    사용할 세션입니다.

  • :write (해시)

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

  • :write_concern (해시)

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

반환합니다:

이후:

  • 2.0.0



408
409
410
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 408

def fs(옵션 = {})
  그리드::FSBucket.신규(self, 옵션)
end

#검사string

데이터베이스에 대한 예쁜 인쇄된 string 검사를 받으세요.

예시:

데이터베이스 를 검사합니다.

database.inspect

반환합니다:

  • (string)

    데이터베이스 검사.

이후:

  • 2.0.0



384
385
386
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 384

def 검사
  "#<Mongo::Database:0x#{object_id} name=#{name}>"
end

#list_collections(options = {}) ⇒ Array<Hash>

참고:

반환되는 컬렉션 집합과 컬렉션당 정보 해시의 스키마는 요청을 처리하는 MongoDB 서버 버전에 따라 다릅니다.

데이터베이스의 모든 비시스템 컬렉션에 대한 정보를 가져옵니다.

See https://mongodb.com/ko-kr/docs/manual/reference/command/listCollections/
for more information and usage.

매개변수:

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

옵션 해시(options):

  • :filter (해시)

    반환된 컬렉션에 대한 필터입니다.

  • :name_only (true, false)

    명령이 컬렉션/view 이름과 유형만 반환할지, 아니면 이름과 기타 정보를 모두 반환할지 여부를 나타냅니다.

  • :authorized_collections (true, false)

    true로 설정하다 하고 nameOnly: true와 함께 사용하면 액세스 제어가 시행될 때 필요한 권한 이 없는 사용자도 명령을 실행 수 있는 플래그입니다.

  • :comment (객체)

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

  • :timeout_ms (정수)

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

반환합니다:

  • (Array<Hash>)

    데이터베이스 의 각 컬렉션 당 하나씩 정보 해시의 배열입니다.

이후:

  • 2.0.5



177
178
179
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 177

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

#operation_timeouts(opts) ⇒ 해시

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

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

반환합니다:

  • (해시)

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

이후:

  • 2.0.0



563
564
565
566
567
568
569
570
571
572
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 563

def operation_timeout(opts)
  # TODO: 두 개의 타임아웃이 별도로 필요한지 다시 평가해야 합니다.
  {}. do |결과|
    만약 opts[:timeout_ms].nil?
      결과[:inherited_timeout_ms] = timeout_ms
    other
      결과[:operation_timeout_ms] = opts.삭제(:timeout_ms)
    end
  end
end

#read_command(operation, opts = {}) ⇒ 해시

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

데이터베이스 에서 읽기 명령을 실행하고, 필요한 경우 읽기를 다시 시도합니다.

매개변수:

  • 작업 (해시)

    실행할 명령입니다.

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

    명령 옵션.

옵션 해시(opts):

  • :read (해시)

    이 명령에 대한 읽기 설정 (read preference) 입니다.

  • :session (세션)

    이 명령에 사용할 세션입니다.

  • :comment (객체)

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

  • :timeout_ms (정수)

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

  • :op_name (string | nil)

    추적을 위한 작업의 이름입니다.

반환합니다:

  • (해시)

    명령 실행 결과입니다.

이후:

  • 2.0.0



280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 280

def read_command(작업, opts = {})
  txn_read_pref = (opts[:session].txn_read_preference 만약 opts[:session] && opts[:session].in_transaction?)
  txn_read_pref ||= opts[:read] || ServerSelector::기본
  Lint.validate_underscore_read_preference(txn_read_pref)
  기본 설정 = ServerSelector.get(txn_read_pref)

  고객.with_session(opts) do |Session|
    컨텍스트 = 작업::Context.신규(
      클라이언트: 고객,
      세션: Session,
      operation_timeout: operation_timeout(opts)
    )
    작업 = 작업::명령.신규(
      선택기: 작업.dup,
      db_name: 이름,
      읽기: 기본 설정,
      세션: Session,
      comment: opts[:comment]
    )
    op_name = opts[:op_name] || '명령'
    추적 프로그램.trace_operation(작업, 컨텍스트, op_name: op_name) do
      read_with_retry(Session, 기본 설정, 컨텍스트) do |서버|
        작업.실행(서버, 컨텍스트: 컨텍스트)
      end
    end
  end
end

#timeout_msInteger | nil

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

이 데이터베이스 또는 해당 클라이언트 에 대한 작업 시간 초과를 반환합니다.

반환합니다:

  • (정수 | nil)

    이 데이터베이스 또는 해당 클라이언트 에 대한 작업 시간 초과입니다.

이후:

  • 2.0.0



555
556
557
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 555

def timeout_ms
  옵션[:timeout_ms] || 고객.timeout_ms
end

#usersView::User

이 데이터베이스 에 대한 사용자 뷰를 가져옵니다.

예시:

사용자 뷰를 가져옵니다.

database.users

반환합니다:

  • (View::User)

    사용자 보기.

이후:

  • 2.0.0



420
421
422
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 420

def 사용자
  인증::사용자::보기.신규(self)
end

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

참고:

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

참고:

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

사용자가 클라이언트의 데이터베이스 에서 발생하는 모든 변경사항에 대해 알림 보내도록 요청 수 있습니다.

예시:

특정 데이터베이스 에 대한 변경 알림 받기 ..

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

매개변수:

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

    선택적 추가 필터 연산자.

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

    변경 스트림 옵션.

옵션 해시(options):

  • :full_document (string)

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

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

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

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

  • :comment (객체)

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

  • :show_expanded_events (부울)

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

반환합니다:

  • (ChangeStream)

    변경 스트림 객체입니다.

이후:

  • 2.6.0



521
522
523
524
525
526
527
528
529
530
531
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 521

def 시계(파이프라인 = [], 옵션 = {})
  view_options = 옵션.dup
  view_options[:cursor_type] = :tailable_await 만약 옵션[:max_await_time_ms]

  mongo::컬렉션::보기::Change Stream.신규(
    mongo::컬렉션::보기.신규(컬렉션("#{명령}.aggregate"), {}, view_options),
    파이프라인,
    mongo::컬렉션::보기::Change Stream::데이터베이스,
    옵션
  )
end