클래스: Mongo::Database
- 상속:
-
객체
- 객체
- Mongo::Database
- 확장자:
- 전달 가능
- 다음을 포함합니다.
- 재시도 가능
- 다음에 정의됨:
- lib/mongo/database.rb,
lib/mongo/database/view.rb
개요
db 서버 의 데이터베이스 와 이 수준에서 실행할 수 있는 작업을 나타냅니다.
네임스페이스 아래에 정의됨
클래스: 보기
상수 요약 접기
- ADMIN =
관리 데이터베이스 이름입니다.
'관리자'- 명령 =
데이터베이스 명령이 작동하는 ' 컬렉션 "입니다.
'$cmd'- DEFAULT_OPTIONS =
기본값 데이터베이스 옵션입니다.
옵션::편집됨.신규(database: ADMIN).동결
- NAME =
더 이상 사용되지 않습니다.
데이터베이스 이름 필드 상수입니다.
'이름'- 데이터베이스 =
데이터베이스 상수입니다.
'databases'- 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
사용자가 클라이언트의 데이터베이스 에서 발생하는 모든 변경사항에 대해 알림 보내도록 요청 수 있습니다.
Retryable에 포함된 메서드
#read_Worker, #select_server, #with_overload_retry, #write_Worker
생성자 세부 정보
#initialize(클라이언트, name, options = {}) ⇒ 데이터베이스
새 데이터베이스 객체 를 인스턴스화합니다.
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 |
인스턴스 속성 세부 정보
#클라이언트 ⇒ 클라이언트 (읽기 전용)
반환값 클라이언트 데이터베이스 클라이언트 입니다.
60 61 62 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 60 def 고객 @client end |
#이름 ⇒ string (읽기 전용)
반환값 name 데이터베이스 의 이름입니다.
63 64 65 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 63 def 이름 @name end |
#options ⇒ 해시 (읽기 전용)
반환값 options options.
66 67 68 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 66 def @options end |
클래스 메서드 세부 정보
.create(클라이언트) ⇒ 데이터베이스
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
클라이언트의 원래 데이터베이스 인스턴스 동일하지 않도록 하는 데 사용할 수 있도록 제공된 클라이언트 에 대한 데이터베이스 만듭니다.
546 547 548 549 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 546 def self.create(고객) database = Database.신규(고객, 고객.[:database], 고객.) 고객.instance_variable_set(:@database, database) end |
인스턴스 메서드 세부 정보
#==(기타) ⇒ true, false
데이터베이스 객체 가 다른 객체와 동일한지 확인합니다. 이름이 동일한지 간단히 확인합니다.
93 94 95 96 97 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 93 def ==(기타) 반환 거짓 하지 않는 한 기타.is_a?(Database) 이름 == 기타.이름 end |
#[](collection_name, options = {}) ⇒ Mongo::Collection ~ 라고도 함: 컬렉션
제공된 이름으로 이 데이터베이스 에서 컬렉션 을 가져옵니다.
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
데이터베이스 에서 집계 을 수행합니다.
454 455 456 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 454 def 집계(파이프라인, = {}) 보기.신규(self, ).집계(파이프라인, ) end |
#cluster ⇒ Mongo::Server
반환값 클러스터 에서 프라이머리 서버 를 가져옵니다.
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.
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.
205 206 207 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 205 def collections( = {}) collection_names().map { |이름| 컬렉션(이름) } end |
#command(operation, opts = {}) ⇒ Mongo::Operation::Result
데이터베이스에서 명령을 실행합니다.
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
데이터베이스 와 모든 관련 정보를 삭제합니다.
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
이 데이터베이스 에 대한 그리드 '파일 시스템'을 가져옵니다.
408 409 410 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 408 def fs( = {}) 그리드::FSBucket.신규(self, ) end |
#검사 ⇒ string
데이터베이스에 대한 예쁜 인쇄된 string 검사를 받으세요.
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.
177 178 179 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 177 def list_collections( = {}) 보기.신규(self, ).list_collections() end |
#operation_timeouts(opts) ⇒ 해시
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
작업 수준에서 설정하다 timeout_ms 값(있는 경우) 및/또는 컬렉션/ 데이터베이스/ 클라이언트 수준(있는 경우)에 설정하다 timeout_ms를 반환합니다.
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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
데이터베이스 에서 읽기 명령을 실행하고, 필요한 경우 읽기를 다시 시도합니다.
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_ms ⇒ Integer | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 데이터베이스 또는 해당 클라이언트 에 대한 작업 시간 초과를 반환합니다.
555 556 557 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 555 def timeout_ms [:timeout_ms] || 고객.timeout_ms end |
#users ⇒ View::User
이 데이터베이스 에 대한 사용자 뷰를 가져옵니다.
420 421 422 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 420 def 사용자 인증::사용자::보기.신규(self) end |
#watch(파이프라인 = [], options = {}) ⇒ ChangeStream
변경 스트림 '대다수' 읽기 고려 (read concern) 만 허용합니다.
재개 가능성을 지원할 목적으로 $changeStream 단계로 원시 애그리게이션을 실행하는 것보다 이 헬퍼 메서드를 사용하는 것이 좋습니다.
사용자가 클라이언트의 데이터베이스 에서 발생하는 모든 변경사항에 대해 알림 보내도록 요청 수 있습니다.
521 522 523 524 525 526 527 528 529 530 531 |
# 파일 'lib/ Mongo/ 데이터베이스.rb', 줄 521 def 시계(파이프라인 = [], = {}) = .dup [:cursor_type] = :tailable_await 만약 [:max_await_time_ms] mongo::컬렉션::보기::Change Stream.신규( mongo::컬렉션::보기.신규(컬렉션("#{명령}.aggregate"), {}, ), 파이프라인, mongo::컬렉션::보기::Change Stream::데이터베이스, ) end |