Docs Menu
Docs Home
/ / /
루비 드라이버
/

데이터베이스 명령 실행

이 가이드 에서는 Ruby 운전자 사용하여 데이터베이스 명령 실행 방법을 학습 수 있습니다. 데이터베이스 명령을 사용하여 서버 통계 가져오기, 복제본 세트 초기화 또는 집계 파이프라인 실행 과 같은 다양한 관리 및 진단 작업을 수행할 수 있습니다.

중요

데이터베이스 명령보다 드라이버 메서드를 선호합니다.

운전자 많은 데이터베이스 명령에 대한 래퍼 메서드를 제공합니다. 가능하면 데이터베이스 명령을 실행하는 대신 이러한 방법을 사용하는 것이 좋습니다.

관리 작업을 수행하려면 Ruby 운전자 대신 MongoDB Shell 사용합니다. 셸 운전자 에서 사용할 수 없는 헬퍼 메서드를 제공합니다.

운전자 또는 셸 에 사용 가능한 헬퍼가 없는 경우 이 가이드 에 설명된 db.runCommand() 셸 메서드 또는 드라이버의 command 메서드를 사용할 수 있습니다.

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_restaurants 데이터베이스 사용합니다. Ruby 애플리케이션 에서 이 데이터베이스 액세스 하려면 Atlas cluster 에 연결하는 Mongo::Client 객체 생성하고 database 변수에 다음 값을 할당합니다.

database = client.use('sample_restaurants')

무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 Atlas 시작하기 가이드 를 참조하세요.

데이터베이스 명령 실행 하려면 Mongo::Database 인스턴스 의 command 인스턴스 메서드를 실행 하고 실행 작업의 이름을 매개변수로 전달합니다.

다음 예시 command 메서드를 호출하여 서버 에 대한 정보를 반환하는 hello 명령을 실행 .

client.database.command(hello: 1)

데이터베이스 명령의 전체 목록과 해당 매개변수를 보려면 MongoDB Server 매뉴얼의 데이터베이스 명령을 참조하세요.

command 메서드는 Database 인스턴스 에 설정하다 했을 수 있는 읽기 설정 (read preference) 상속하지 않습니다. 기본값 으로 commandprimary 읽기 설정 (read preference) 사용합니다.

다음 코드와 같이 :read 옵션을 command 메서드에 전달하여 명령 실행에 대한 읽기 설정 (read preference) 설정하다 수 있습니다.

client.database.command({hello: 1}, read: {mode: :secondary})

읽기 설정 (read preference) 옵션에 대해 학습 보려면 MongoDB Server 매뉴얼의 읽기 설정 을 참조하세요.

command 메서드는 지정된 명령에 대한 데이터베이스 의 응답이 포함된 Mongo::Operation::Result 을 반환합니다.

다음 메서드를 사용하여 원시 명령 응답 문서 의 필드에 액세스 할 수 있습니다.

메서드
설명

acknowledged?

서버 명령을 승인한 경우 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

inspect

명령 응답의 형식이 지정된 문자열 표현을 반환합니다.

ok?

명령이 성공하면 true 를 반환하고, 그렇지 않으면 false 을 반환합니다. ok? 메서드가 false을 반환하면 운전자 Mongo::Error::OperationFailure를 발생시킵니다.

cluster_time

서버 응답에서 보고된 클러스터 시간을 반환합니다. 클러스터 시간은 작업 순서에 사용되는 논리적 시간입니다. 이 필드 복제본 세트 또는 샤딩된 클러스터 에서 실행 명령에만 적용됩니다.

operation_time

작업 실행의 논리적 시간을 반환합니다.

Result 객체에서 사용할 수 있는 메서드의 전체 목록은 API 설명서를 참조하세요.

논리적 시간에 대해 자세히 학습하려면 논리적 시계에 대한 Wikipedia 항목을 참조하세요.

다음 예시 dbStats 명령을 실행하여 sample_restaurants 데이터베이스 의 저장 통계를 조회 다음 inspect 메서드를 사용하여 명령 결과를 출력합니다.

puts client.database.command({dbStats: 1}).first

이 명령의 출력에는 다음 코드에 표시된 대로 데이터베이스 에 저장된 데이터에 대한 정보가 포함됩니다.

{"db"=>"sample_restaurants", "collections"=>4, "views"=>0, "objects"=>18767, "avgObjSize"=>596.1911866574306,
"dataSize"=>11188720, "storageSize"=>7528448, "totalFreeStorageSize"=>0, "numExtents"=>0, "indexes"=>6,
"indexSize"=>1519616, "indexFreeStorageSize"=>0, "fileSize"=>0, "nsSizeMB"=>0, "ok"=>1}

이 가이드 의 개념에 대한 자세한 내용은 MongoDB Server 매뉴얼의 다음 문서를 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

데이터베이스 & collection

이 페이지의 내용