Docs Menu
Docs Home
/
MongoDB 매뉴얼

데이터베이스 명령 사용

이 페이지의 내용

  • 데이터베이스 명령 양식
  • 명령 실행
  • admin 데이터베이스 명령
  • 명령 응답

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와 관련된 결과 필드입니다.
ok
명령이 성공했는지(1) 또는 실패했는지(0) 여부를 나타내는 숫자입니다.
operationTime

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

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

  • 읽기 고려 "local", "snapshot", "linearizable"의 경우, oplog에 있는 가장 최신 엔트리의 타임스탬프입니다.

  • 읽기 고려 "majority"의 경우 oplog에 있는 가장 최근 majority-acknowledged 항목의 타임스탬프입니다.

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

$clusterTime

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

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

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

  • signature: cluster 시간의 해시와 cluster 시간 서명에 사용되는 키의 ID가 포함된 문서입니다.

다음

MongoDB란 무엇입니까?