옵션
다음 옵션을 사용하여 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 콘솔에 들어가지 않고 명령줄에서 스크립트를 실행합니다.
자세한 내용과 예제는 명령줄에서 스크립트 실행을 참조합니다.
Stable API 옵션
--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 호스트 이름 기록과 옵션을 지정합니다.authSource
및replicaSet
옵션이 연결 문자열에 포함된 경우, 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 옵션
--tlsCertificateKeyFile <filename>
mongosh
에 대한 TLS / SSL 인증서와 키가 모두 포함된.pem
파일을 지정합니다. 상대 경로 또는 절대 경로를 사용해.pem
파일의 이름을 지정합니다.이 옵션은
--tls
옵션을 사용하여mongod
또는mongos
인스턴스에 연결할 때 클라이언트 인증서가 필요한 경우에 필요합니다. 즉, MongoDB Shell이 이 인증서를 서버에 제공합니다.참고
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 도구)은 서버 인증서의 유효성을 검사하려고 시도하지 않습니다. 이로 인해 만료된mongod
및mongos
인증서뿐만 아니라 유효한mongod
또는mongos
인스턴스로 위장한 외부 프로세스에도 취약점이 발생합니다. TLS / SSL 인증서에서 호스트 이름 검증만 비활성화해야 하는 경우에는--tlsAllowInvalidHostnames
를 참조하세요.TLS/SSL 및 MongoDB에 대해 자세히 알아보려면 다음을 참조하세요.
--tlsCertificateSelector <parameter>=<value>
--tlsCertificateKeyFile
대신 Windows 및 macOS에서 사용할 수 있습니다.중요
Windows 및 개인 키 가져오기
개인 키를 가져올 때는 내보내기 가능으로 표시해야 합니다. Windows 인증서 가져오기 마법사는 이 옵션을 기본으로 선택하지 않습니다.
--tlsCertificateKeyFile
및--tlsCertificateSelector
옵션은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.운영 체제의 인증서 저장소에서 일치하는 인증서를 선택하기 위해 인증서 속성을 지정합니다.
--tlsCertificateSelector
는<property>=<value>
형식의 인수를 받으며, 여기서 속성은 다음 중 하나일 수 있습니다.속성값 유형설명subject
ASCII 문자열
인증서의 주체 이름 또는 일반 이름
thumbprint
16진수 문자열
16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.
thumbprint
을(를)fingerprint
(이)라고 부르기도 합니다.시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.
--tlsDisabledProtocols <string>
지정된 TLS 프로토콜을 비활성화합니다. 이 옵션은 다음 프로토콜을 인식합니다.
TLS1_0
TLS1_1
TLS1_2
(버전 4.0.4, 3.6.9, 3.4.24부터)
TLS1_3
macOS에서는
TLS1_1
은 비활성화하고TLS1_0
와TLS1_2
가 모두 활성화된 상태를 유지할 수 없습니다. 예를 들어,TLS1_0,TLS1_1
처럼 다른 2개의 프로토콜 중 하나 이상을 비활성화해야 합니다.여러 프로토콜을 나열하려면 쉼표로 구분된 프로토콜 목록으로 지정합니다( 예시:
TLS1_0,TLS1_1
).지정된 비활성화 프로토콜은 기본으로 설정된 비활성화 프로토콜을 덮어씁니다.
버전 4.0부터 TLS 1.1 이상을 시스템에서 사용할 수 있는 경우 MongoDB는 TLS 1.0의 사용을 비활성화합니다. 비활성화된 TLS 1.0을 사용하려면
none
을--tlsDisabledProtocols
로 지정합니다.
인증 옵션
--authenticationDatabase <dbname>
지정한
--username
이 생성된 인증 데이터베이스를 지정합니다. 인증 데이터베이스를 참조하세요.--authenticationDatabase
에 대한 값을 지정하지 않으면 MongoDB Shell은 연결 문자열에 지정된 데이터베이스를 사용합니다.
--authenticationMechanism <name>
MongoDB Shell이
mongod
또는mongos
의 인증에 사용할 인증 메커니즘을 지정합니다.authenticationMechanism
을 지정하지 않고 사용자 자격 증명을 제공하는 경우 MongoDB Shell과 드라이버는 SCRAM-SHA-256을 사용하려고 시도합니다. 이 작업이 실패하면 SCRAM-SHA-1로 돌아갑니다.값설명RFC 5802 SHA-1 해시 함수를 사용하는 표준 Salted Challenge Response 인증 메커니즘.
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에 추가되었습니다.forward
authMechanismProperties=CANONICALIZE_HOST_NAME:true
설정과 효과가 동일합니다.none
authMechanismProperties=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-auth
를auth-code
의 대체 옵션으로 설정하는 방법은 다음 예시에서 확인 가능합니다.mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcRedirectUri
인증 후 멱등이 사용자를 리디렉션할 URI를 지정합니다. URI는 멱등의 구성과 일치해야 합니다. 기본값은
http://localhost:27097/redirect
입니다.
--oidcTrustedEndpoint
Atlas 또는 localhost가 아닌, 다른 신뢰할 수 있는 엔드포인트에 대한 연결을 지정합니다.연결하려는 서버를 신뢰할 수 있을 때만 이 옵션을 사용합니다.
--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)에 대한
List
및Read
권한을 보유한 IAM 사용자에 관한 AWS 액세스 키입니다.mongosh
는 지정된--awsAccessKeyId
를 사용하여 KMS에 액세스합니다.--awsAccessKeyId
는mongosh
shell 세션에 클라이언트 측 필드 레벨 암호화를 사용하도록 설정하는 데 필요합니다.--awsAccessKeyId
는 다음 명령줄 옵션이 모두 필요합니다.--awsAccessKeyId
가 생략된 경우 shell 세션에서Mongo()
생성자를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를
--awsAccessKeyId
.로 지정하는 것이 좋습니다.
--awsSecretAccessKey <string>
지정된
--awsAccessKeyId
에 연결된 AWS 비밀 키입니다.mongosh
세션에 클라이언트 측 필드 레벨 암호화를 활성화하려면--awsSecretAccessKey
가 필요합니다.--awsSecretAccessKey
는 다음 명령줄 옵션이 모두 필요합니다.--awsSecretAccessKey
및 해당 지원 옵션이 생략된 경우 shell 세션에서Mongo()
를 사용하여 클라이언트 측 필드 수준 암호화를 활성화합니다.액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를
--awsSecretAccessKey
.로 지정하는 것이 좋습니다.
--awsSessionToken <string>
지정된
--awsAccessKeyId
에 연결된 AWS 세션 토큰입니다.--awsSessionToken
는mongosh
shell 세션에 클라이언트 사이드 필드 레벨 암호화를 사용하도록 설정하는 데 필요합니다.--awsSessionToken
에는 다음 명령줄 옵션이 모두 필요합니다.--awsSessionToken
및 해당 지원 옵션이 생략된 경우 shell 세션에서Mongo()
를 사용하여 클라이언트 측 필드 수준 암호화를 활성화합니다.액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를
--awsSessionToken
.로 지정하는 것이 좋습니다.
--keyVaultNamespace <string>
클라이언트 사이드 필드 레벨 암호화의 키 저장소로 사용되는 컬렉션 전체 네임스페이스(
<database>.<collection>
)입니다.mongosh
셸 세션에 대해 클라이언트 사이드 필드 레벨 암호화를 활성화하려면--keyVaultNamespace
가 필요합니다. 지정된 네임스페이스가 존재하지 않는 경우mongosh
가 이를 생성합니다.--keyVaultNamespace
에는 다음 명령줄 옵션이 모두 필요합니다.--keyVaultNamespace
및 해당 지원 옵션이 생략된 경우 shell 세션에서Mongo()
생성자를 사용하여 클라이언트 측 필드 수준 암호화를 활성화합니다.