클래스: Mongo::Database

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

개요

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

이후:

  • 2.0.0

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

클래스: 보기

상수 요약 접기

ADMIN =

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

이후:

  • 2.0.0

'admin'.동결
명령 =

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

이후:

  • 2.0.0

'$cmd'.동결
DEFAULT_OPTIONS =

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

이후:

  • 2.0.0

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

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

이후:

  • 2.1.0

'name'.동결
데이터베이스 =

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

이후:

  • 2.1.0

'데이터베이스'.동결
NAMESPACES =

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

이후:

  • 2.0.0

'system.namespaces'.동결

인스턴스 속성 요약 접기

클래스 메서드 요약 접기

인스턴스 메서드 요약 접기

Retryable에 포함된 메서드

#read_Worker, #select_server, #write_Worker

생성자 세부 정보

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

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

예시:

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

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

매개변수:

  • 고객 (Mongo::Client)

    운전자 클라이언트.

  • 이름 (string, 기호)

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

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

    옵션.

다음을 발생시킵니다.

  • (Mongo::Database::InvalidName)

    이름이 nil인 경우.

이후:

  • 2.0.0



316
317
318
319
320
321
322
323
324
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 316

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

인스턴스 속성 세부 정보

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

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

반환합니다:

  • (클라이언트)

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

이후:

  • 2.0.0



62
63
64
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 62

def 고객
  @client
end

#이름string (읽기 전용)

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

반환합니다:

  • (string)

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

이후:

  • 2.0.0



65
66
67
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 65

def 이름
  @name
end

#options해시 (읽기 전용)

반환값 options options.

반환합니다:

  • (해시)

    options 옵션입니다.

이후:

  • 2.0.0



68
69
70
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 68

def 옵션
  @options
end

클래스 메서드 세부 정보

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

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

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

예시:

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

Database.create(client)

매개변수:

반환합니다:

이후:

  • 2.0.0



496
497
498
499
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 496

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

인스턴스 메서드 세부 정보

#==(기타) ⇒ true, false

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

예시:

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

database == other

매개변수:

  • 기타 (객체)

    확인할 객체입니다.

반환합니다:

  • (true, false)

    객체가 동일한 경우.

이후:

  • 2.0.0



94
95
96
97
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 94

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

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

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

예시:

컬렉션 을 가져옵니다.

database[:users]

매개변수:

  • collection_name (string, 기호)

    컬렉션의 이름입니다.

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

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

반환합니다:

이후:

  • 2.0.0



110
111
112
113
114
115
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.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 (객체)

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

  • :hint (string)

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

  • :max_time_ms (정수)

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

  • :use_cursor (true, false)

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

  • :session (세션)

    사용할 세션입니다.

반환합니다:

이후:

  • 2.10.0



403
404
405
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 403

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

#clusterMongo::Server

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

반환합니다:

  • (Mongo::Server)

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

이후:

  • 2.0.0



80
81
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 80

def_delegators :cluster,
:next_primary

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

참고:

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

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

매개변수:

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

옵션 해시(options):

  • :filter (해시)

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

  • :authorized_collections (true, false)

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

  • :comment (객체)

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

    mongodb.com/ko-kr/docs/manual/reference/command/listCollections/를 참조하세요. 자세한 내용 및 사용법은 다음을 참조하세요.

반환합니다:

  • (Array<String>)

    컬렉션의 이름입니다.

이후:

  • 2.0.0



138
139
140
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 138

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

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

참고:

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

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

매개변수:

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

옵션 해시(options):

  • :filter (해시)

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

  • :authorized_collections (true, false)

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

  • :comment (객체)

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

    mongodb.com/ko-kr/docs/manual/reference/command/listCollections/를 참조하세요. 자세한 내용 및 사용법은 다음을 참조하세요.

반환합니다:

이후:

  • 2.0.0



191
192
193
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 191

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 ]BSON types 가능한 Ruby 경우 네이티브 유형 대신 을 사용하여 이 명령에 대한 응답을 역직렬화할지 여부입니다.

반환합니다:

이후:

  • 2.0.0



213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 213

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

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

  고객.send(:with_session, opts) do |Session|
    서버 = 선택기.select_server(cluster, nil, Session)
    op = 작업::명령.신규(
      :selector => 작업,
      :db_name => 이름,
      :read => 선택기,
      :session => Session
    )

    op.실행(서버,
      컨텍스트: 작업::Context.신규(클라이언트: 고객, 세션: Session),
      옵션: execution_opts)
  end
end

#drop(options = {}) ⇒ Result

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

예시:

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

database.drop

매개변수:

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

    작업에 대한 옵션입니다.

  • opts (해시)

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

옵션 해시(options):

  • :session (세션)

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

반환합니다:

  • (결과)

    명령의 결과입니다.

이후:

  • 2.0.0



287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 287

def 제거(옵션 = {})
  작업 = { :dropDatabase => 1 }
  고객.send(: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))
  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



358
359
360
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 358

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

#검사string

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

예시:

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

database.inspect

반환합니다:

  • (string)

    데이터베이스 검사.

이후:

  • 2.0.0



334
335
336
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 334

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

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

참고:

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

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

매개변수:

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

옵션 해시(options):

  • :filter (해시)

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

  • :name_only (true, false)

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

  • :authorized_collections (true, false)

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

  • :comment (객체)

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

    mongodb.com/ko-kr/docs/manual/reference/command/listCollections/를 참조하세요. 자세한 내용 및 사용법은 다음을 참조하세요.

반환합니다:

  • (Array<Hash>)

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

이후:

  • 2.0.5



167
168
169
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 167

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

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

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

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

매개변수:

  • 작업 (해시)

    실행할 명령입니다.

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

    명령 옵션.

옵션 해시(opts):

  • :read (해시)

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

  • :session (세션)

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

반환합니다:

  • (해시)

    명령 실행 결과입니다.

이후:

  • 2.0.0



251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 251

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

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

#usersView::User

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

예시:

사용자 뷰를 가져옵니다.

database.users

반환합니다:

  • (View::User)

    사용자 보기.

이후:

  • 2.0.0



370
371
372
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 370

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

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

참고:

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

참고:

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

MongoDB 서버 버전 3.6 부터 집계 프레임워크 에서 '$changeStream' 파이프라인 단계가 지원됩니다. 버전 4.0 부터 이 단계에서는 클라이언트의 데이터베이스 에서 발생하는 모든 변경 사항에 대해 알림 을 보내도록 요청 수 있습니다.

예시:

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

database.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.6.0



472
473
474
475
476
477
478
479
480
481
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 472

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

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