Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼

데이터베이스 명령 실행

이 페이지의 내용

  • 개요
  • 명령 실행
  • 응답
  • 명령 예제
  • 추가 정보
  • API 문서

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

중요

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

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

관리 작업을 수행하려면 MongoDB PHP 라이브러리 대신 MongoDB Shell 을 사용합니다. shell 은 라이브러리에서 사용할 수 없는 헬퍼 메서드를 제공합니다.

라이브러리 또는 shell 에 사용 가능한 헬퍼가 없는 경우 이 가이드 에 설명된 db.runCommand() shell 메서드 또는 라이브러리의 MongoDB\Database::command() 메서드를 사용할 수 있습니다.

데이터베이스 명령 을 실행 하려면 명령 문서 에 명령과 관련 매개변수를 지정한 다음 MongoDB\Database::command() 메서드에 명령 문서 를 전달해야 합니다. 많은 데이터베이스 명령이 여러 결과 문서를 반환하므로 command() 메서드는 MongoDB\ 드라이버\Cursor 를 반환합니다. 반복할 수 있는 객체 입니다.

다음 코드는 MongoDB\Database 인스턴스 에서 command() 메서드를 사용하여 서버 에 대한 정보를 반환하는 hello 명령을 실행 하는 방법을 보여줍니다.

$database = $client->selectDatabase('myDB');
$cursor = $database->command(['hello' => 1]);

데이터베이스 명령 및 해당 매개변수의 전체 목록에 대한 링크를 찾으려면 추가 정보 섹션을 참조하세요.

참고

읽기 설정

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

다음 코드에 표시된 대로 옵션 매개변수에 읽기 설정을 설정하다 하여 명령 실행에 대한 읽기 설정 (read preference) 을 지정할 수 있습니다.

$readPref = new MongoDB\Driver\ReadPreference('primaryPreferred');
$cursor = $database->command(
['hello' => 1],
['readPreference' => $readPref]
);

PHP 확장 API문서 에서 클래스에 ReadPreference 자세히 보기 .

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

command() 메서드는 지정된 명령에 대한 데이터베이스 의 응답이 포함된 Cursor 객체 를 반환합니다. 각 데이터베이스 명령 은 서로 다른 기능을 수행하므로 응답 내용이 다를 수 있습니다.

단일 결과 문서 를 반환하는 명령의 경우 해당 결과는 커서 의 첫 번째이자 유일한 문서 로 사용할 수 있습니다. 여러 결과 문서를 반환하는 명령의 경우 라이브러리는 커서 ID 와 첫 번째 결과 배치 를 포함하는 원시 명령 응답의 커서 엔벨로프를 반복 가능한 커서 로 변환합니다.

명령을 실행 하기 전에 애플리케이션 이 여러 결과를 반복하거나 커서 에서 첫 번째이자 유일한 문서 를 추출할 수 있도록 명령의 응답 형식에 학습 보세요. 데이터베이스 명령의 전체 목록에 대한 링크를 찾으려면 이 가이드 의 추가 정보 섹션을 참조하세요.

원시 명령 응답에는 다음 필드가 포함되어 있습니다.

필드
설명
<command result>
데이터베이스 명령 과 관련된 필드입니다. 예를 예시, count 명령은 n 필드 를 반환합니다.
ok
명령이 성공했는지(1) 또는 실패했는지(0). 라이브러리가 CommandException ok0 발생시킵니다. 필드 가 인 경우.
operationTime
작업의 논리적 시간입니다. MongoDB 는 논리적 시간을 사용하여 작업의 순서를 지정합니다. 이 개념에 학습 보려면 글로벌 로직 클럭에 대한 블로그 포스트 을 참조하세요.
$clusterTime
서명된 cluster 시간이 포함된 문서입니다. cluster 시간은 작업 순서를 지정하는 데 사용되는 논리적 시간입니다.

다음 예시 에서는 command() 메서드를 사용하여 dbStats 명령을 실행 하여 accounts 데이터베이스 의 저장 통계를 조회 합니다.

$database = $client->accounts;
$command = ['dbStats' => 1];
// dbStats returns a single document
$cursor = $database->command($command);
// Print the first document in the cursor
echo json_encode($cursor->toArray()[0]), PHP_EOL;

이 명령의 출력에는 데이터베이스 의 컬렉션에 대한 정보가 포함되며 컬렉션 전체에 저장된 데이터의 양과 크기가 설명됩니다.

{"db":"accounts","collections":2,"views":0,"objects":5,"avgObjSize":22,"dataSize":110,
"storageSize":40960,"totalFreeStorageSize":0,"numExtents":0,"indexes":2,"indexSize":40960,
"indexFreeStorageSize":0,"fileSize":0,"nsSizeMB":0,"ok":1}

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

command() 메서드에 대한 자세한 내용은 다음 MongoDB PHP 라이브러리 API 문서를 참조하세요.

돌아가기

CRUD 작업 & 복제본 세트