클래스: Mongo::Database
- 상속:
-
객체
- 객체
- Mongo::Database
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 재시도 가능
- 다음에 정의됨:
- lib/mongo/database.rb,
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>
데이터베이스의 모든 비시스템 컬렉션에 대한 정보를 가져옵니다.
-
#operation_timeouts(opts) ⇒ 해시
비공개
작업 수준에서 설정하다 Timeout_ms 값(있는 경우) 및/또는 컬렉션/ 데이터베이스/ 클라이언트 수준(있는 경우)에 설정하다 timeout_ms입니다.
-
#read_command(operation, opts = {}) ⇒ 해시
비공개
데이터베이스 에서 읽기 명령을 실행하고, 필요한 경우 읽기를 다시 시도합니다.
-
#timeout_ms ⇒ Integer | nil
비공개
이 데이터베이스 또는 해당 클라이언트 에 대한 작업 시간 초과입니다.
-
#users ⇒ View::User
이 데이터베이스 에 대한 사용자 뷰를 가져옵니다.
-
#watch(pipeline = [], options = {}) ⇒ ChangeStream
MongoDB 서버 버전 3.6 부터 애그리게이션 프레임워크에서 '$changeStream' 파이프라인 단계가 지원됩니다.
Retryable에 포함된 메서드
#read_Worker, #select_server, #write_Worker
생성자 세부 정보
#initialize(클라이언트, name, options = {}) ⇒ 데이터베이스
새 데이터베이스 객체 를 인스턴스화합니다.
362 363 364 365 366 367 368 369 370 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 362 def 초기화(고객, 이름, = {}) 올리다 오류::InvalidDatabaseName.신규 하지 않는 한 이름 만약 Lint.활성화? && !(이름.is_a?(문자열) || 이름.is_a?(기호)) 올리다 "데이터베이스 이름은 string 또는 기호여야 합니다: #{name}" end @client = 고객 @name = 이름.to_s.동결 @options = .동결 end |
인스턴스 속성 세부 정보
#클라이언트 ⇒ 클라이언트 (읽기 전용)
반환값 클라이언트 데이터베이스 클라이언트 입니다.
62 63 64 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 62 def 고객 @client end |
#이름 ⇒ string (읽기 전용)
반환값 name 데이터베이스 의 이름입니다.
65 66 67 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 65 def 이름 @name end |
#options ⇒ 해시 (읽기 전용)
반환값 options options.
68 69 70 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 68 def @options end |
클래스 메서드 세부 정보
.create(클라이언트) ⇒ 데이터베이스
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트의 원래 데이터베이스 인스턴스 가 동일하지 않도록 하는 데 사용할 수 있도록 제공된 클라이언트 에 대한 데이터베이스 를 만듭니다.
543 544 545 546 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 543 def self.create(고객) database = Database.신규(고객, 고객.[:database], 고객.) 고객.instance_variable_set(:@database, database) end |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true, false
데이터베이스 객체 가 다른 객체와 동일한지 확인합니다. 이름이 동일한지 간단히 확인합니다.
94 95 96 97 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 94 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(Database) 이름 == 기타.이름 end |
#[](collection_name, options = {}) ⇒ Mongo::Collection ~ 라고도 함: 컬렉션
제공된 이름으로 이 데이터베이스 에서 컬렉션 을 가져옵니다.
110 111 112 113 114 115 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 110 def [](collection_name, = {}) 만약 [:server_api] 올리다 ArgumentError, ':server_api 옵션은 컬렉션 객체에 지정할 수 없습니다. 클라이언트 수준' end 컬렉션.신규(self, collection_name, ) end |
#aggregate(pipeline, options = {}) ⇒ Collection::View::Aggregation
데이터베이스 에서 집계 을 수행합니다.
450 451 452 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 450 def 집계(파이프라인, = {}) 보기.신규(self, ).집계(파이프라인, ) end |
#cluster ⇒ Mongo::Server
반환값 클러스터 에서 프라이머리 서버 를 가져옵니다.
80 81 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 80 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.
142 143 144 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 142 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.
203 204 205 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 203 def collections( = {}) collection_names().map { |이름| 컬렉션(이름) } end |
#command(operation, opts = {}) ⇒ Mongo::Operation::Result
데이터베이스에서 명령을 실행합니다.
229 230 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 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 229 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) 고객.with_session(opts) do |Session| 서버 = 선택기.select_server(cluster, nil, Session) op = 작업::명령.신규( :selector => 작업, :db_name => 이름, :read => 선택기, :session => Session ) op.실행(서버, 컨텍스트: 작업::Context.신규( 클라이언트: 고객, 세션: Session, operation_timeout: operation_timeout(opts) ), 옵션: execution_opts) end end |
#drop(options = {}) ⇒ Result
데이터베이스 와 모든 관련 정보를 삭제합니다.
322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 322 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
이 데이터베이스에 대한 그리드 '파일 시스템'을 가져옵니다.
404 405 406 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 404 def fs( = {}) 그리드::FSBucket.신규(self, ) end |
#검사 ⇒ string
데이터베이스에 대한 예쁜 인쇄된 string 검사를 받으세요.
380 381 382 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 380 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.
175 176 177 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 175 def list_collections( = {}) 보기.신규(self, ).list_collections() end |
#operation_timeouts(opts) ⇒ 해시
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
작업 수준에서 설정하다 timeout_ms 값(있는 경우) 및/또는 컬렉션/ 데이터베이스/ 클라이언트 수준(있는 경우)에 설정하다 timeout_ms를 반환합니다.
560 561 562 563 564 565 566 567 568 569 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 560 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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 에서 읽기 명령을 실행하고, 필요한 경우 읽기를 다시 시도합니다.
277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 277 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) 고객.with_session(opts) do |Session| 컨텍스트 = 작업::Context.신규( 클라이언트: 고객, 세션: Session, operation_timeout: operation_timeout(opts) ) read_with_retry(Session, 기본 설정, 컨텍스트) do |서버| 작업::명령.신규( 선택기: 작업.dup, db_name: 이름, 읽기: 기본 설정, 세션: Session, comment: opts[:comment], ).실행(서버, 컨텍스트: 컨텍스트) end end end |
#timeout_ms ⇒ Integer | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 데이터베이스 또는 해당 클라이언트 에 대한 작업 시간 초과를 반환합니다.
552 553 554 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 552 def timeout_ms [:timeout_ms] || 고객.timeout_ms end |
#users ⇒ View::User
이 데이터베이스 에 대한 사용자 뷰를 가져옵니다.
416 417 418 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 416 def 사용자 인증::사용자::보기.신규(self) end |
#watch(파이프라인 = [], options = {}) ⇒ ChangeStream
변경 스트림 은 '대다수' 읽기 고려 (read concern) 만 허용합니다.
재개 가능성을 지원할 목적으로 $changeStream 단계로 원시 애그리게이션을 실행하는 것보다 이 헬퍼 메서드를 사용하는 것이 좋습니다.
MongoDB 서버 버전 3.6 부터 집계 프레임워크 에서 '$changeStream' 파이프라인 단계가 지원됩니다. 버전 4.0 부터 이 단계에서는 클라이언트의 데이터베이스 에서 발생하는 모든 변경 사항에 대해 알림 을 보내도록 요청 수 있습니다.
519 520 521 522 523 524 525 526 527 528 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 519 def 시계(파이프라인 = [], = {}) = .dup [:cursor_type] = :tailable_await 만약 [:max_await_time_ms] mongo::컬렉션::보기::Change Stream.신규( mongo::컬렉션::보기.신규(컬렉션("#{명령}.aggregate"), {}, ), 파이프라인, mongo::컬렉션::보기::Change Stream::데이터베이스, ) end |