데이터베이스 명령 사용
MongoDB 명령 인터페이스는CRUD 가 아닌 모든 데이터베이스 작업에 대한 액세스 를 제공합니다. 서버 통계 가져오기, 복제본 세트 초기화, 집계 파이프라인 또는 맵 리듀스 작업 실행 은 모두 명령으로 수행할 수 있습니다.
기능별로 정렬된 모든 명령 목록은 데이터베이스 명령에서 확인 가능합니다.
데이터베이스 명령 양식
먼저 첫 번째 키가 명령의 이름인 표준 BSON 문서를 작성하여 명령을 지정합니다. 예를 들어, 다음 BSON 문서를 사용하여 hello
명령을 지정합니다.
{ hello: 1 }
명령 실행
mongosh
는 db.runCommand()
라는 이름의 명령을 실행할 수 있는 헬퍼 메서드를 제공합니다. mongosh
의 작업은 이전 명령을 실행합니다.
db.runCommand( { hello: 1 } )
많은 드라이버가 db.runCommand()
메서드와 동등한 기능을 제공합니다. 내부적으로 db.runCommand()
를 사용해 명령을 실행하는 것은 $cmd 컬렉션에 대한 특수 쿼리와 동일합니다.
많은 일반 명령은 mongosh
와 드라이버에서 자체 셸 헬퍼나 래퍼를 가지고 있습니다 예를 들어 mongosh
의 db.hello()
메서드가 있습니다.
maxTimeMS
옵션을 사용하여 명령 실행 시간 제한을 지정할 수 있습니다. 작업 종료에 관한 자세한 정보는 명령 종료에서 확인할 수 있습니다.
admin
데이터베이스 명령
일부 병령은 관리 데이터베이스에서 실행해야 합니다. 일반적으로 이러한 작업은 다음과 유사합니다.
use admin db.runCommand( {buildInfo: 1} )
하지만 admin
데이터베이스의 맥락에서 명령을 자동으로 실행하는 명령 헬퍼도 있습니다.
db.adminCommand( {buildInfo: 1} )
명령 응답
MongoDB는 모든 명령에 대해 다음 필드가 포함된 응답 문서를 반환합니다.
필드 | 설명 |
---|---|
<command result> | 실행된 command 와 관련된 결과 필드입니다. |
ok | 명령이 성공했는지( 1 ) 또는 실패했는지(0 ) 여부를 나타내는 숫자입니다. |
operationTime | 수행된 작업의 논리적 시간으로, MongoDB 에서 oplog 항목의 타임스탬프로 표시됩니다. 복제본 세트 및 샤딩된 클러스터에만 해당 명령이 oplog 엔트리(예시: 읽기 작업)를 생성하지 않는 경우 작업은 논리적 시계를 진행하지 않습니다. 이 경우
인과적으로 일관적인 세션과 관련된 작업의 경우 MongoDB 드라이버는 논리적 시간을 사용하여 읽기 작업 및 버전 3.6에 새로 추가되었습니다. |
$clusterTime | 서명된 클러스터 시간을 반환하는 문서입니다. 클러스터 시간은 작업 순서를 지정하는 데 사용되는 논리적 시간입니다. 복제본 세트 및 샤딩된 클러스터에만 해당됩니다. 내부용으로만 사용하세요. 이 문서에는 다음 필드가 포함되어 있습니다:
버전 3.6에 새로 추가되었습니다. |