Docs Menu
Docs Home
/ / /
C#/.NET
/ /

데이터베이스 명령 실행

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • 명령 실행
  • 읽기 기본 설정 지정
  • 응답
  • 예시
  • 추가 정보
  • API 문서

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

중요

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

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

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

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

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_restaurants.restaurants 컬렉션 을 사용합니다. 무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 빠른 시작을 참조하세요.

데이터베이스 명령 을 실행 하려면 명령을 지정하는 BsonDocument 객체 를 만들고 이를 RunCommand() 또는 RunCommandAsync() 메서드에 매개 변수로 전달합니다. type 매개변수를 지정하여 이러한 메서드에서 반환되는 유형을 지정할 수 있습니다. BsonDocument 유형을 사용하여 명령 응답을 반환하거나 강력한 유형의 자체 클래스를 지정하여 명령 응답을 역직렬화할 수 있습니다.

다음 예시 에서는 데이터베이스 에서 hello 명령을 실행하여 서버 에 대한 정보를 반환합니다. Asynchronous 또는 Synchronous 탭 을 선택하여 해당 코드를 확인합니다.

var command = new BsonDocument("hello", 1);
var result = await database.RunCommandAsync<BsonDocument>(command);
var command = new BsonDocument("hello", 1);
var result = database.RunCommand<BsonDocument>(command);

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

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

다음 예시 와 같이 ReadPreference 인스턴스 를 RunCommand()에 매개 변수로 전달하여 명령 실행에 대한 읽기 설정 (read preference) 설정하다 지정할 수 있습니다. Asynchronous 또는 Synchronous 탭 을 선택하여 해당 코드를 확인합니다.

var command = new BsonDocument("hello", 1);
var result = await database.RunCommandAsync<BsonDocument>(command, ReadPreference.Secondary);
var command = new BsonDocument("hello", 1);
var result = database.RunCommand<BsonDocument>(command, ReadPreference.Secondary);

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

RunCommand() 메서드에서 반환된 원시 명령 응답 문서 에는 다음 필드가 포함되어 있습니다.

필드
설명

<command result>

데이터베이스 명령 과 관련된 필드입니다. 예를 예시, hello 명령은 topologyVersion 필드 를 반환합니다.

ok

명령이 성공했는지(1.0) 또는 실패했는지(0.0)를 나타냅니다. ok 값이 0.0 인 경우 운전자 는 MongoCommandException 을 발생시킵니다.

$clusterTime

서명된 클러스터 시간이 포함된 문서 입니다. 클러스터 시간은 작업 순서에 사용되는 논리적 시간입니다. 이 필드 는 복제본 세트 또는 샤딩된 클러스터에서 실행 되는 명령에만 적용됩니다.

operationTime

작업 실행의 논리적 시간입니다. 이 필드 는 복제본 세트 또는 샤딩된 클러스터에서 실행 되는 명령에만 적용됩니다.

다음 예시 에서는 dbStats 명령을 실행하여 sample_restaurants 데이터베이스 의 저장 통계를 조회 한 다음 반환된 BsonDocument 객체 에 ToJson() 메서드를 사용하여 명령 결과를 출력합니다. Asynchronous 또는 Synchronous 탭 을 선택하여 해당 코드를 확인합니다.

var command = new BsonDocument("dbStats", 1);
var result = await database.RunCommandAsync<BsonDocument>(command);
Console.WriteLine(result.ToJson());
var command = new BsonDocument("dbStats", 1);
var result = database.RunCommand<BsonDocument>(command);
Console.WriteLine(result.ToJson());

이 명령의 출력에는 이전 예시 에서 반환된 결과에 표시된 대로 데이터베이스 에 저장된 데이터에 대한 정보가 포함됩니다.

{ "db" : "sample_restaurants", "collections" : 2, "views" : 0, "objects" :
NumberLong(25438), "avgObjSize" : 548.95172576460413, "dataSize" : NumberLong(13964234),
"storageSize" : NumberLong(8056832), "totalFreeStorageSize" : NumberLong(0),
"numExtents" : NumberLong(0), "indexes" : 2, "indexSize" : NumberLong(1044480),
"indexFreeStorageSize" : NumberLong(0), "fileSize" : NumberLong(0), "nsSizeMB" : 0, "ok" : 1 }

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

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

돌아가기

데이터베이스 & collection