클래스: Mongo::Database
- 상속:
-
객체
- 객체
- Mongo::Database
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 재시도 가능
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/database.rb,
build/ruby-driver-v2.19/lib/mongo/database/view.rb
개요
db 서버 의 데이터베이스 와 이 수준에서 실행할 수 있는 작업을 나타냅니다.
네임스페이스 아래에 정의됨
클래스: 보기
상수 요약 접기
- ADMIN =
관리 데이터베이스 이름입니다.
'admin'.동결
- 명령 =
데이터베이스 명령이 작동하는 ' 컬렉션 '입니다.
'$cmd'.동결
- DEFAULT_OPTIONS =
기본값 데이터베이스 옵션입니다.
옵션::편집됨.신규(:database => ADMIN).동결
- NAME =
더 이상 사용되지 않습니다.
데이터베이스 이름 필드 상수입니다.
'name'.동결
- 데이터베이스 =
데이터베이스 상수입니다.
'데이터베이스'.동결
- NAMESPACES =
모든 컬렉션 이름을 포함하는 컬렉션 의 이름입니다.
'system.namespaces'.동결
인스턴스 속성 요약 접기
-
#client ⇒ Client
읽기 전용
클라이언트 데이터베이스 클라이언트 입니다.
-
#이름 ⇒ string
읽기 전용
이름 데이터베이스 의 이름입니다.
-
옵션 #개 ⇒ 해시
읽기 전용
옵션 옵션입니다.
클래스 메서드 요약 접기
-
.create(클라이언트) ⇒ 데이터베이스
비공개
클라이언트의 원래 데이터베이스 인스턴스 가 동일하지 않도록 하는 데 사용할 수 있도록 제공된 클라이언트 에 대한 데이터베이스 를 만듭니다.
인스턴스 메서드 요약 접기
-
#==(기타) ⇒ true, false
데이터베이스 객체 가 다른 객체와 동일한지 확인합니다.
-
#[](collection_name, options = {}) ⇒ Mongo::Collection (동의어: # 컬렉션)
제공된 이름으로 이 데이터베이스 에서 컬렉션 을 가져옵니다.
-
#aggregate(pipeline, options = {}) ⇒ Collection::View::Aggregation
데이터베이스 에서 집계 을 수행합니다.
-
#cluster ⇒ Mongo::Server
클러스터 에서 프라이머리 서버 를 가져옵니다.
-
#collection_names(options = {}) ⇒ Array<String>
데이터베이스 에 있는 비시스템 컬렉션의 모든 이름을 가져옵니다.
-
collection #collection(options = {}) ⇒ Array<Mongo::Collection>
이 데이터베이스 에 속하는 모든 비시스템 컬렉션을 가져옵니다.
-
#command(operation, opts = {}) ⇒ Mongo::Operation::Result
데이터베이스에서 명령을 실행합니다.
-
#drop(options = {}) ⇒ Result
데이터베이스 와 모든 관련 정보를 삭제합니다.
-
#fs(options = {}) ⇒ Grid::FSBucket
이 데이터베이스에 대한 그리드 '파일 시스템'을 가져옵니다.
-
#initialize(클라이언트, name, options = {}) ⇒ 데이터베이스
생성자
새 데이터베이스 객체 를 인스턴스화합니다.
-
#검사 ⇒ string
데이터베이스에 대한 예쁜 인쇄된 string 검사를 받으세요.
-
#list_collections(options = {}) ⇒ Array<Hash>
데이터베이스의 모든 비시스템 컬렉션에 대한 정보를 가져옵니다.
-
#read_command(operation, opts = {}) ⇒ 해시
비공개
데이터베이스 에서 읽기 명령을 실행하고, 필요한 경우 읽기를 다시 시도합니다.
-
#users ⇒ View::User
이 데이터베이스 에 대한 사용자 뷰를 가져옵니다.
-
#watch(pipeline = [], options = {}) ⇒ ChangeStream
MongoDB 서버 버전 3.6 부터 애그리게이션 프레임워크에서 '$changeStream' 파이프라인 단계가 지원됩니다.
Retryable에 포함된 메서드
#read_Worker, #select_server, #write_Worker
생성자 세부 정보
#initialize(클라이언트, name, options = {}) ⇒ 데이터베이스
새 데이터베이스 객체 를 인스턴스화합니다.
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 |
인스턴스 속성 세부 정보
#클라이언트 ⇒ 클라이언트 (읽기 전용)
반환값 클라이언트 데이터베이스 클라이언트 입니다.
62 63 64 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 62 def 고객 @client end |
#이름 ⇒ string (읽기 전용)
반환값 name 데이터베이스 의 이름입니다.
65 66 67 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 65 def 이름 @name end |
#options ⇒ 해시 (읽기 전용)
반환값 options options.
68 69 70 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 68 def @options end |
클래스 메서드 세부 정보
.create(클라이언트) ⇒ 데이터베이스
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트의 원래 데이터베이스 인스턴스 가 동일하지 않도록 하는 데 사용할 수 있도록 제공된 클라이언트 에 대한 데이터베이스 를 만듭니다.
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
데이터베이스 객체 가 다른 객체와 동일한지 확인합니다. 이름이 동일한지 간단히 확인합니다.
94 95 96 97 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 94 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(Database) 이름 == 기타.이름 end |
#[](collection_name, options = {}) ⇒ Mongo::Collection ~ 라고도 함: 컬렉션
제공된 이름으로 이 데이터베이스 에서 컬렉션 을 가져옵니다.
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
데이터베이스 에서 집계 을 수행합니다.
403 404 405 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 403 def 집계(파이프라인, = {}) 보기.신규(self).집계(파이프라인, ) end |
#cluster ⇒ Mongo::Server
반환값 클러스터 에서 프라이머리 서버 를 가져옵니다.
80 81 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 80 def_delegators :cluster, :next_primary |
#collection_names(options = {}) ⇒ Array<String>
반환되는 컬렉션 이름 집합은 요청을 처리하는 MongoDB 서버의 버전에 따라 달라집니다.
데이터베이스 에 있는 비시스템 컬렉션의 모든 이름을 가져옵니다.
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 서버 의 버전에 따라 달라집니다.
이 데이터베이스 에 속하는 모든 비시스템 컬렉션을 가져옵니다.
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
데이터베이스에서 명령을 실행합니다.
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
데이터베이스 와 모든 관련 정보를 삭제합니다.
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
이 데이터베이스에 대한 그리드 '파일 시스템'을 가져옵니다.
358 359 360 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 358 def fs( = {}) 그리드::FSBucket.신규(self, ) end |
#검사 ⇒ string
데이터베이스에 대한 예쁜 인쇄된 string 검사를 받으세요.
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 서버 버전에 따라 다릅니다.
데이터베이스의 모든 비시스템 컬렉션에 대한 정보를 가져옵니다.
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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 에서 읽기 명령을 실행하고, 필요한 경우 읽기를 다시 시도합니다.
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 |
#users ⇒ View::User
이 데이터베이스 에 대한 사용자 뷰를 가져옵니다.
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 부터 이 단계에서는 클라이언트의 데이터베이스 에서 발생하는 모든 변경 사항에 대해 알림 을 보내도록 요청 수 있습니다.
472 473 474 475 476 477 478 479 480 481 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/database.rb', 줄 472 def 시계(파이프라인 = [], = {}) = .dup [:await_data] = true 만약 [:max_await_time_ms] mongo::컬렉션::보기::Change Stream.신규( mongo::컬렉션::보기.신규(컬렉션("#{명령}.aggregate"), {}, ), 파이프라인, mongo::컬렉션::보기::Change Stream::데이터베이스, ) end |