ANNOUNCEMENT: Voyage AI joins MongoDB to power more accurate and trustworthy AI applications on Atlas.
Learn more
Docs Menu

데이터베이스 명령 사용

MongoDB 명령 인터페이스는 CRUD가 아닌 모든 데이터베이스 작업에 대한 액세스를 제공합니다. 서버 통계 가져오기, 복제본 세트 초기화, 집계 파이프라인 또는 맵 리듀스 작업 실행은 모두 명령으로 수행할 수 있습니다.

기능별로 정렬된 모든 명령 목록은 데이터베이스 명령에서 확인 가능합니다.

첫 번째 키가 명령의 이름인 표준 BSON 문서를 작성하여 먼저 명령을 지정합니다. 예를 들어, 다음 BSON 문서를 사용하여 hello 명령을 지정합니다:

{ hello: 1 }

mongoshdb.runCommand()라는 이름의 명령을 실행할 수 있는 헬퍼 메서드를 제공합니다. mongosh의 작업은 이전 명령을 실행합니다.

db.runCommand( { hello: 1 } )

많은 드라이버db.runCommand() 메서드와 동등한 기능을 제공합니다. 내부적으로 db.runCommand()를 사용해 명령을 실행하는 것은 $cmd 컬렉션에 대한 특수 쿼리와 동일합니다.

많은 일반 명령은 mongosh와 드라이버에서 자체 셸 헬퍼나 래퍼를 가지고 있습니다 예를 들어 mongoshdb.hello() 메서드가 있습니다.

maxTimeMS 옵션을 사용하여 명령 실행 시간 제한을 지정할 수 있습니다. 작업 종료에 관한 자세한 정보는 명령 종료에서 확인할 수 있습니다.

일부 병령은 관리 데이터베이스에서 실행해야 합니다. 일반적으로 이러한 작업은 다음과 유사합니다.

use admin
db.runCommand( {buildInfo: 1} )

하지만 admin 데이터베이스의 맥락에서 명령을 자동으로 실행하는 명령 헬퍼도 있습니다.

db.adminCommand( {buildInfo: 1} )

MongoDB는 모든 명령에 대해 다음 필드가 포함된 응답 문서를 반환합니다.

필드
설명

<command result=""></command>

실행된 command와 관련된 결과 필드입니다.

ok

명령이 성공했는지(1) 또는 실패했는지(0) 여부를 나타내는 숫자입니다.

operationTime

작업의 논리적 시간입니다. MongoDB는 논리적 시간을 사용하여 작업의 순서를 지정합니다. 복제본 세트 및 샤딩된 클러스터에만 해당됩니다.

명령이 oplog 엔트리(예시: 읽기 작업)를 생성하지 않는 경우 작업은 논리적 시계를 진행하지 않습니다. 이 경우 operationTime이 다음을 반환합니다.

인과적으로 일관적인 세션과 관련된 작업의 경우 MongoDB 드라이버는 논리적 시간을 사용하여 읽기 작업 및 afterClusterTime 기간을 자동으로 설정합니다.

$clusterTime

서명된 클러스터 시간을 반환하는 문서입니다. 클러스터 시간은 작업 순서를 지정하는 데 사용되는 논리적 시간입니다. 복제본 세트 및 샤딩된 클러스터에만 해당됩니다. 내부용으로만 사용하세요.

이 문서에는 다음 필드가 포함되어 있습니다:

  • clusterTime: 멤버에 대해 알려진 가장 높은 클러스터 시간의 타임스탬프입니다.

  • signature: 클러스터 시간의 해시와 클러스터 시간 서명에 사용된 키의 ID가 포함된 문서 입니다.