Docs Menu
Docs Home
/
MongoDB Shell
/

옵션

이 페이지의 내용

  • 일반 옵션
  • Stable API 옵션
  • 연결 옵션
  • TLS 옵션
  • 인증 옵션
  • 세션 옵션
  • 클라이언트 측 필드 레벨 암호화 옵션

다음 옵션을 사용하여 MongoDB Shell의 다양한 측면을 보고 제어합니다.

--build-info

mongosh 빌드 및 드라이버 종속성에 대한 정보가 포함된 JSON 형식의 문서를 반환합니다.

예시: 빌드 정보 보기

터미널에서 다음 명령을 실행하여 mongosh 바이너리의 빌드 정보 및 드라이버 종속성을 확인할 수 있습니다:

mongosh --build-info

이 명령은 다음과 같은 JSON 형식의 문서를 반환합니다.

{
version: '1.10.1',
distributionKind: 'packaged',
buildArch: 'x64',
buildPlatform: 'linux',
buildTarget: 'unknown',
buildTime: '2023-06-21T09:49:37.225Z',
gitVersion: '05ad91b4dd40382a13f27abe1ae8c3f9f52a38f7',
nodeVersion: 'v16.20.1',
opensslVersion: '3.1.1',
sharedOpenssl: true,
runtimeArch: 'x64',
runtimePlatform: 'darwin',
deps: {
nodeDriverVersion: '5.6.0'
}
}
--eval <javascript>

JavaScript 표현식을 평가합니다. 단일 --eval 인수를 사용하거나 여러 개의 --eval 인수를 함께 사용할 수 있습니다.

mongosh는 인수를 평가한 후 --eval 결과를 명령줄에 인쇄합니다. --eval 성명서를 여러 개 사용하는 경우 mongosh는 마지막 --eval 결과만 인쇄합니다.

--json 플래그와 --eval을 함께 사용하면 mongosh 결과를 확장 JSON 형식으로 반환할 수 있습니다. mongosh--json=canonical--json=relaxed 모드를 모두 지원합니다. 모드를 생략한 경우 mongosh의 기본값은 canonical 모드가 됩니다. --json 플래그는 --shell과 상호 배타적입니다.

예시: 형식 출력

자동 구문 분석에 적합한 출력을 얻으려면 EJSON.stringify()를 사용합니다.

mongosh --quiet --host rs0/centos1104 --port 27500 \
--eval "EJSON.stringify(rs.status().members.map( \
m => ({'id':m._id, 'name':m.name, 'stateStr':m.stateStr})));" \
| jq

jq로 구문 분석을 수행하면 다음과 같은 결과가 표시됩니다.

[
{
"id": 0,
"name": "centos1104:27500",
"stateStr": "PRIMARY"
},
{
"id": 1,
"name": "centos1104:27502",
"stateStr": "SECONDARY"
},
{
"id": 2,
"name": "centos1104:27503",
"stateStr": "SECONDARY"
}
]

참고

EJSON 에는 서식 지정 옵션이 내장되어 jq와 같은 구문 분석기가 필요하지 않을 수 있습니다. 예를 들어, 다음 코드는 위와 동일한 형식의 결과를 생성합니다.

mongosh --quiet --host rs0/centos1104 --port 27500 \
--eval "EJSON.stringify( rs.status().members.map( \
({ _id, name, stateStr }) => ({ _id, name, stateStr })), null, 2);"

예: 다중 --eval 인수

moviesDatabase에서 컬렉션 목록을 확보하려면 여러 --eval 성명서를 사용합니다.

mongosh --quiet \
--eval 'use moviesDatabase' \
--eval 'show collections' \
mongodb://localhost/

예: --json 옵션

여러 --eval 문을 사용하여 확장 JSON 형식으로 컬렉션의 통계를 반환하려면 다음을 수행합니다.

mongosh --quiet --json=relaxed \
--eval 'use <database-name>' \
--eval 'db.<collection>.stats()' \
mongodb://localhost/
--file, -f <javascript>

MongoDB Shell 콘솔에 들어가지 않고 명령줄에서 스크립트를 실행합니다.

자세한 내용과 예제는 명령줄에서 스크립트 실행을 참조합니다.

--help, -h

MongoDB Shell의 옵션 및 사용에 대한 정보를 반환합니다.

--nodb

셸의 데이터베이스 인스턴스 연결을 방지합니다.

--norc

시작 시 셸의 ~/.mongoshrc.js 소싱 및 평가를 방지합니다.

--quiet

시작할 때 모든 메시지(예: 환영 메시지 및 시작 경고)를 건너뛰고 프롬프트로 바로 이동합니다.

--shell

shell 인터페이스를 활성화합니다. mongosh 명령을 호출하고 JavaScript 파일을 인수로 지정하거나 --eval을 사용하여 명령줄에서 JavaScript를 지정하는 경우 --shell 옵션은 파일 실행이 완료된 후 사용자에게 shell 프롬프트를 제공합니다. --shell 플래그는 --json과 상호 배타적입니다.

--verbose

연결 프로세스가 진행되는 동안 또는 명령이 실행될 때 셸 결과의 상세도를 높입니다.

--version

MongoDB Shell 릴리스 번호를 반환합니다.

--apiVersion <version number>

apiVersion을 지정합니다. 현재 "1"만 지원됩니다.

--apiStrict

애플리케이션이 Stable API 외부의 명령이나 동작을 사용하는 경우 서버가 APIStrictError 로 응답하도록 지정합니다.

--apiStrict를 지정하는 경우 --apiVersion도 지정해야 합니다.

--apiDeprecationErrors

애플리케이션이 지정된 apiVersion에서 더 이상 사용되지 않는 명령이나 동작을 사용하는 경우 서버가 APIDeprecationError로 응답하도록 지정합니다.

--apiDeprecationErrors를 지정하는 경우 --apiVersion도 지정해야 합니다.

--host <hostname>

mongod 또는 mongos가 실행 중인 호스트 머신의 이름을 지정합니다. 지정하지 않으면 MongoDB Shell은 에서 로컬 호스트에서 실행 중인 MongoDB 프로세스에 연결을 시도합니다.

다음을 수행하여 복제본 세트에 연결합니다.

세트 멤버의 replica set name 및 시드 목록을 지정합니다. 다음 양식을 사용합니다.

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
TLS/SSL 연결(--tls)의 경우,
MongoDB Shell은 호스트 이름(--host 옵션 또는 연결 문자열에서 지정)이 mongod 또는 mongos에서 제공하는 인증서의 SAN(SAN 이 없는 경우 CN)과 일치하는지 확인합니다. SAN이 있는 경우 MongoDB Shell은 CN과 일치하지 않습니다. 호스트 이름이 SAN(또는 CN)과 일치하지 않으면 MongoDB Shell 연결에 실패합니다.
DNS 시드 목록 연결의 경우,

연결 프로토콜을 mongodb+srv로 지정한 후 DNS SRV 호스트 이름 기록과 옵션을 지정합니다. authSourcereplicaSet 옵션이 연결 문자열에 포함된 경우, TXT 기록에서 해당 DNS 구성 옵션 설정보다 우선 적용됩니다. mongodb+srv: 연결 문자열을 사용하면 클라이언트 연결을 위한 TLS / SSL(일반적으로 tls=true와 함께 설정)를 암시적으로 허용합니다. 쿼리 문자열에서 tls=false를 설정하여 TLS 옵션을 해제할 수 있습니다.

예시

mongodb+srv://server.example.com/?connectionTimeoutMS=3000
--port <port>

mongod 또는 mongos 인스턴스가 수신 대기 중인 포트를 지정합니다. --port가 지정되지 않은 경우, MongoDB Shell은 27017 포트에 연결을 시도합니다.

--tls

TLS/SSL 지원이 활성화된 mongod 또는 mongos에 연결할 수 있습니다.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsCertificateKeyFile <filename>

mongosh에 대한 TLS / SSL 인증서와 키가 모두 포함된 .pem 파일을 지정합니다. 상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

이 옵션은 --tls 옵션을 사용하여 mongod 또는 mongos 인스턴스에 연결할 때 클라이언트 인증서가 필요한 경우에 필요합니다. 즉, MongoDB Shell이 이 인증서를 서버에 제공합니다.

참고

버전 4.4부터 mongod/mongos는 제공된 x.509 인증서가 mongod/mongos 호스트 시스템 시간으로부터 30일 이내에 만료되는 경우 연결 시 경고를 기록합니다.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsCertificateKeyFilePassword <value>

인증서-키 파일 해독을 위한 비밀번호를 지정합니다(예: --tlsCertificateKeyFile).

--tlsCertificateKeyFilePassword 옵션은 인증서-키 파일이 암호화된 경우에만 사용합니다. MongoDB Shell은 언제나 모든 기록 및 보고 결과에서 암호를 삭제합니다.

PEM 파일의 개인 키가 암호화되어 있고 --tlsCertificateKeyFilePassword 옵션을 지정하지 않은 경우 MongoDB Shell에서 암호를 입력하라는 메시지를 표시합니다.

TLS/SSL 인증서 암호를 참조하세요.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsCAFile <filename>

인증 기관의 루트 인증서 체인이 포함된 .pem 파일을 지정합니다. 이 파일은 mongod/mongos 인스턴스에서 제공하는 인증서를 검증하는 데 사용됩니다.

상대 경로 또는 절대 경로를 사용해 .pem 파일의 이름을 지정합니다.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsCRLFile <filename>

인증서 해지 목록이 포함된 .pem 파일을 지정합니다. 상대 경로 또는 절대 경로를 .pem 파일의 이름을 지정합니다.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsAllowInvalidHostnames

mongod/mongos 인스턴스에서 제공하는 인증서의 호스트 이름 검증을 비활성화합니다. 서버 인증서의 호스트 이름이 서버의 호스트와 일치하지 않더라도 MongoDB Shell이 MongoDB 인스턴스에 연결할 수 있도록 허용합니다.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsAllowInvalidCertificates

버전 4.2에 추가되었습니다.

mongod/mongos 인스턴스에서 제공하는 인증서에 대한 유효성 검사를 우회하고 유효하지 않은 인증서를 제공하는 서버에 대한 연결을 허용합니다.

참고

MongoDB 4.0부터 x.509 인증을 사용할 때 --tlsAllowInvalidCertificates를 지정하면 유효하지 않은 인증서는 TLS/SSL 연결을 설정하는 데만 충분하지만 인증에는 충분하지 않습니다.

경고

--tlsAllowInvalidCertificates 옵션은 사용할 수 있는 경우에도 가급적 사용하지 않는 것이 좋습니다. --tlsAllowInvalidCertificates를 사용해야만 하는 경우, 침입이 불가능한 시스템에서만 옵션을 사용하세요.

MongoDB Shell 셸(및 기타 MongoDB 도구)이 --tlsAllowInvalidCertificates 옵션을 사용하여 실행되는 경우 셸(및 기타 MongoDB 도구)은 서버 인증서의 유효성을 검사하려고 시도하지 않습니다. 이로 인해 만료된 mongodmongos 인증서뿐만 아니라 유효한 mongod 또는 mongos 인스턴스로 위장한 외부 프로세스에도 취약점이 발생합니다. TLS / SSL 인증서에서 호스트 이름 검증만 비활성화해야 하는 경우에는 --tlsAllowInvalidHostnames를 참조하세요.

TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.

--tlsCertificateSelector <parameter>=<value>

--tlsCertificateKeyFile 대신 Windows 및 macOS에서 사용할 수 있습니다.

중요

Windows 및 개인 키 가져오기

개인 키를 가져올 때는 내보내기 가능으로 표시해야 합니다. Windows 인증서 가져오기 마법사는 이 옵션을 기본으로 선택하지 않습니다.

키를 내보낼 수 있다고 표시된 경우 Microsoft 인증서 가져오기 마법사

--tlsCertificateKeyFile--tlsCertificateSelector 옵션은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.

운영 체제의 인증서 저장소에서 일치하는 인증서를 선택하기 위해 인증서 속성을 지정합니다.

--tlsCertificateSelector<property>=<value> 형식의 인수를 받으며, 여기서 속성은 다음 중 하나일 수 있습니다.

속성
값 유형
설명

subject

ASCII 문자열

인증서의 주체 이름 또는 일반 이름

thumbprint

16진수 문자열

16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.

thumbprint을(를) fingerprint(이)라고 부르기도 합니다.

시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.

참고

버전 4.4부터 mongod/mongos는 제공된 x.509 인증서가 mongod/mongos 호스트 시스템 시간으로부터 30일 이내에 만료되는 경우 연결 시 경고를 기록합니다.

--tlsDisabledProtocols <string>

지정된 TLS 프로토콜을 비활성화합니다. 이 옵션은 다음 프로토콜을 인식합니다.

  • TLS1_0

  • TLS1_1

  • TLS1_2

  • (버전 4.0.4, 3.6.9, 3.4.24부터) TLS1_3

  • macOS에서는 TLS1_1은 비활성화하고 TLS1_0TLS1_2가 모두 활성화된 상태를 유지할 수 없습니다. 예를 들어, TLS1_0,TLS1_1처럼 다른 2개의 프로토콜 중 하나 이상을 비활성화해야 합니다.

  • 여러 프로토콜을 나열하려면 쉼표로 구분된 프로토콜 목록으로 지정합니다( 예시: TLS1_0,TLS1_1).

  • 지정된 비활성화 프로토콜은 기본으로 설정된 비활성화 프로토콜을 덮어씁니다.

버전 4.0부터 TLS 1.1 이상을 시스템에서 사용할 수 있는 경우 MongoDB는 TLS 1.0의 사용을 비활성화합니다. 비활성화된 TLS 1.0을 사용하려면 none--tlsDisabledProtocols로 지정합니다.

--tlsUseSystemCA

mongosh가 운영 체제의 인증 기관에서 사용할 수 있는 TLS 인증서를 불러오도록 허용합니다. mongosh에 대한 인증서를 명시적으로 지정하지 않고 운영 체제에서 이미 제공하고 있는 TLS 인증서를 사용하려면 이 옵션을 선택합니다.

--authenticationDatabase <dbname>

지정한 --username이 생성된 인증 데이터베이스를 지정합니다. 인증 데이터베이스를 참조하세요.

--authenticationDatabase에 대한 값을 지정하지 않으면 MongoDB Shell은 연결 문자열에 지정된 데이터베이스를 사용합니다.

--authenticationMechanism <name>

MongoDB Shell이 mongod 또는 mongos의 인증에 사용할 인증 메커니즘을 지정합니다. authenticationMechanism을 지정하지 않고 사용자 자격 증명을 제공하는 경우 MongoDB Shell과 드라이버는 SCRAM-SHA-256을 사용하려고 시도합니다. 이 작업이 실패하면 SCRAM-SHA-1로 돌아갑니다.

설명

RFC 7677 표준 SHA-256 해시 함수를 사용하는 솔티드 챌린지 응답 인증 메커니즘.

featureCompatibilityVersion이 4.0으로 설정되어야 합니다.

MongoDB TLS/SSL 인증서 인증.

GSSAPI (Kerberos)

Kerberos를 사용한 외부 인증. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.

PLAIN (LDAP SASL)

LDAP 를 사용한 외부 인증 . 을(를) 사용하여 PLAIN 데이터베이스 내 사용자를 인증할 수도 있습니다. 은(는) PLAIN 비밀번호를 일반 텍스트로 전송합니다. 이 메커니즘은 MongoDB 엔터프라이즈MongoDB Atlas 에서 사용할 수 있습니다.

MONGODB-OIDC (OpenID Connect)

OpenID Connect를 사용한 외부 인증 . 이 메커니즘은 MongoDB 엔터프라이즈MongoDB Atlas 에서 사용할 수 있습니다.

MONGODB-AWS (AWS IAM)

AWS IAM( Amazon Web Services Identity and Access Management) 자격 증명 을 사용한 외부 인증 . 이 메커니즘은 MongoDB 엔터프라이즈MongoDB Atlas 에서 사용할 수 있습니다.

--gssapiServiceName

GSSAPI/Kerberos를 사용하여 서비스 이름을 지정합니다. 서비스가 기본값 이름인 mongodb를 사용하지 않는 경우에만 필요합니다.

이 옵션은 MongoDB Enterprise에서만 사용할 수 있습니다.

--sspiHostnameCanonicalization <string>

호스트 이름 표준화 사용 여부를 지정합니다.

--sspiHostnameCanonicalization연결 문자열authMechanismProperties 부분에서 CANONICALIZE_HOST_NAME:true|false 키 쌍을 설정하는 것과 동일한 효과를 갖습니다.

다음은 --sspiHostnameCanonicalization으로 설정된 경우입니다.

  • forwardAndReverse정방향 DNS 조회를 수행한 다음 역방향 조회를 수행합니다. mongosh 1.3.0에 추가되었습니다.

  • forwardauthMechanismProperties=CANONICALIZE_HOST_NAME:true 설정과 효과가 동일합니다.

  • noneauthMechanismProperties=CANONICALIZE_HOST_NAME:false 설정과 효과가 동일합니다.

--oidcFlows

OpenID Connect 흐름을 쉼표로 구분된 목록으로 지정합니다. OpenID Connect 흐름은 인증 프로세스를 위해 mongosh가 멱등과 상호 작용하는 방법을 지정합니다. mongosh는 다음 OpenID Connect 흐름을 지원합니다.

OpenID 연결 흐름
설명

auth-code

기본값. mongosh를 클릭하면 브라우저가 열리고 멱등 로그인 화면으로 리디렉션됩니다.

device-auth

mongosh 는 인증을 완료하기 위한 URL과 코드를 제공합니다. 이는 보안성이 낮은 OpenID Connect 흐름으로 간주되지만 mongosh가 브라우저를 열 수 없는 환경에서 실행될 때 사용할 수 있습니다

device-authauth-code의 대체 옵션으로 설정하는 방법은 다음 예시에서 확인 가능합니다.

mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcRedirectUri

인증 후 멱등이 사용자를 리디렉션할 URI를 지정합니다. URI는 멱등의 구성과 일치해야 합니다. 기본값은 http://localhost:27097/redirect입니다.

--oidcTrustedEndpoint

Atlas 또는 localhost가 아닌, 다른 신뢰할 수 있는 엔드포인트에 대한 연결을 지정합니다.연결하려는 서버를 신뢰할 수 있을 때만 이 옵션을 사용합니다.

--browser

MONGODB-OIDC가 활성화된 경우 mongosh가 리디렉션하는 브라우저를 지정합니다.

이 옵션은 시스템 셸에서 실행됩니다.

--password <password>, -p <password>

인증을 사용하는 MongoDB database에 인증하는 데 사용할 비밀번호를 지정합니다. --username--authenticationDatabase 옵션과 함께 사용합니다.

MongoDB Shell이 비밀번호를 묻는 메시지를 표시하도록 하려면 마지막 옵션으로 --password 옵션을 입력하고 인수를 생략합니다.

--username <username>, -u <username>

인증을 사용하는 MongoDB 데이터베이스에 인증하는 데 사용할 사용자 이름을 지정합니다. --password--authenticationDatabase 옵션과 함께 사용합니다.

--retryWrites

재시도 가능 쓰기를 활성화합니다.

기본적으로 재시도 가능한 쓰기는 다음과 같습니다.

  • 활성화됨 mongosh

  • 레거시 mongo 셸에서 비활성화됨

재시도 가능 쓰기를 비활성화하려면 --retryWrites=false를 사용합니다.

세션 정보는 클라이언트 세션 및 인과적 일관성 보장에서 확인하세요.

--awsAccessKeyId <string>

AWS 키 관리 서비스(KMS)에 대한 ListRead 권한을 보유한 IAM 사용자에 관한 AWS 액세스 키입니다. mongosh는 지정된 --awsAccessKeyId를 사용하여 KMS에 액세스합니다.

--awsAccessKeyIdmongosh shell 세션에 클라이언트 측 필드 레벨 암호화를 사용하도록 설정하는 데 필요합니다. --awsAccessKeyId는 다음 명령줄 옵션이 모두 필요합니다.

--awsAccessKeyId가 생략된 경우 shell 세션에서 Mongo() 생성자를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.

액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를 --awsAccessKeyId.로 지정하는 것이 좋습니다.

--awsSecretAccessKey <string>

지정된 --awsAccessKeyId에 연결된 AWS 비밀 키입니다.

mongosh 세션에 클라이언트 측 필드 레벨 암호화를 활성화하려면 --awsSecretAccessKey가 필요합니다. --awsSecretAccessKey는 다음 명령줄 옵션이 모두 필요합니다.

--awsSecretAccessKey 및 해당 지원 옵션이 생략된 경우 shell 세션에서 Mongo()를 사용하여 클라이언트 측 필드 수준 암호화를 활성화합니다.

액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를 --awsSecretAccessKey.로 지정하는 것이 좋습니다.

--awsSessionToken <string>

지정된 --awsAccessKeyId에 연결된 AWS 세션 토큰입니다.

--awsSessionTokenmongosh shell 세션에 클라이언트 사이드 필드 레벨 암호화를 사용하도록 설정하는 데 필요합니다. --awsSessionToken에는 다음 명령줄 옵션이 모두 필요합니다.

--awsSessionToken 및 해당 지원 옵션이 생략된 경우 shell 세션에서 Mongo()를 사용하여 클라이언트 측 필드 수준 암호화를 활성화합니다.

액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를 --awsSessionToken.로 지정하는 것이 좋습니다.

--keyVaultNamespace <string>

클라이언트 사이드 필드 레벨 암호화의 키 저장소로 사용되는 컬렉션 전체 네임스페이스(<database>.<collection>)입니다. mongosh 셸 세션에 대해 클라이언트 사이드 필드 레벨 암호화를 활성화하려면 --keyVaultNamespace가 필요합니다. 지정된 네임스페이스가 존재하지 않는 경우 mongosh가 이를 생성합니다.

--keyVaultNamespace에는 다음 명령줄 옵션이 모두 필요합니다.

--keyVaultNamespace 및 해당 지원 옵션이 생략된 경우 shell 세션에서 Mongo() 생성자를 사용하여 클라이언트 측 필드 수준 암호화를 활성화합니다.

돌아가기

.mongoshrc 구성 파일