레거시 mongo
셸
참고
mongo
shell 은 MongoDB v5.0에서 더 이상 사용되지 않습니다. 대체품은 mongosh
입니다.
이전 mongo
셸 문서는 해당 MongoDB
릴리스에 해당하는 문서에 포함되어 있습니다.
이전 버전으로의 빠른 링크
자세한 내용은 mongo
셸과 mongosh
비교 를 참조하세요.
설명
mongo
는 에 대한 JavaScript shell 대화형 MongoDB 인터페이스로, 시스템 관리자를 위한 강력한 인터페이스와 개발자가 데이터베이스를 사용하여 쿼리 및 작업을 직접 테스트할 수 있는 방법을 제공합니다. mongo
은 또한 MongoDB와 함께 사용할 수 있는 모든 기능을 갖춘 JavaScript 환경을 제공합니다.
mongo
셸은 MongoDB 서버 설치 의 일부로 포함됩니다. 서버를 이미 설치한 경우 mongo
셸은 서버 바이너리와 동일한 위치에 설치됩니다.
또는 mongo
셸을 MongoDB Server와 별도로 다운로드하려면 다음 단계에 따라 셸을 독립형 패키지로 설치할 수 있습니다.
사용 중인 MongoDB 에디션의 다운로드 센터에 액세스합니다.
드롭다운에서 원하는 Version 및 Platform 를 선택합니다.
플랫폼에 따라 다운로드할 Package 을(를) 선택합니다.
아카이브에서
mongo
셸을 파일 시스템의 위치로 복사합니다.
플랫폼별 추가 설치 지침을 확인하거나 mongo
셸을 MongoDB Server 설치의 일부로 설치하려면 해당 플랫폼의 설치 가이드를 참조하세요.
구문
기본 설정을 사용하여 명령줄 옵션 없이
mongo
셸을 실행할 수 있습니다.mongo 호스트, 포트 및 기타 연결 옵션을 지정하는 연결 string 을 사용하여 을 실행할 수 있습니다.
mongo
shell 예를 들어 다음에는tls
가 포함됩니다.mongo "mongodb://mongodb0.example.com:27017/testdb?tls=true" tls
옵션은 MongoDB 4.2 부터 사용할 수 있습니다. 이전 버전에서는ssl
옵션을 사용합니다.mongo
셸을 복제본 세트에 연결하려면 연결 문자열 에 복제본 세트 멤버와 이름을 지정할 수 있습니다.mongo "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA" 연결 문자열 옵션에 대한 자세한 내용은 연결 문자열을 참조하세요 .
다양한 명령줄 옵션을 사용하여
mongo
shell 을 실행할 수 있습니다. 예를 들면 다음과 같습니다.mongo --host mongodb0.example.com:27017 [additional options] mongo --host mongodb0.example.com --port 27017 [additional options] 사용 가능한 옵션에 대한 자세한 내용은 옵션을 참조하세요.
옵션
버전 4 에서 변경되었습니다.2:
MongoDB는 SSL 옵션을 더 이상 사용하지 않고 대신 새로운 해당 TLS 옵션을 추가합니다.
주요 옵션
--shell
shell 인터페이스를 활성화합니다.
mongo
명령을 호출하고 JavaScript 파일을 인수로 지정하거나--eval
를 사용하여 명령줄에서 JavaScript 를 지정하는 경우,--shell
옵션은 파일 실행이 완료된 후 사용자에게 shell 프롬프트를 표시합니다.
--nodb
shell이 데이터베이스 인스턴스에 연결되는 것을 방지합니다. 나중에 shell 내에서 데이터베이스에 연결하려면 새 연결 열기를 참조하세요.
--port <port>
mongod
또는mongos
인스턴스가 수신 대기 중인 포트를 지정합니다.--port
를 지정하지 않으면mongo
는 포트27017
에 연결을 시도합니다.
--host <hostname>
mongod
또는mongos
가 실행 중인 호스트 머신의 이름을 지정합니다. 이를 지정하지 않으면mongo
는 로컬 호스트에서 실행 중인 MongoDB 프로세스에 연결을 시도합니다.- 다음을 수행하여 복제본 세트에 연결합니다.
replica set name
및 세트 멤버의 시드 목록을 지정합니다. 다음 양식을 사용합니다.<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> - TLS/SSL 연결(
--ssl
)의 경우, mongosh
은(는) 호스트 이름(--host
옵션 또는 연결 문자열에 지정됨)이SAN
SAN
CN
또는 .mongod
mongos
이 있는 경우 은 과SAN
mongosh
일치하지CN
않습니다. 호스트 이름이SAN
(또는CN
)와 일치하지mongosh
않으면 연결에 실패합니다. MongoDB 에서 4 시작.2, SAN 비교를 수행할 때 MongoDB는 DNS 이름 또는 IP 주소 비교를 지원합니다. 이전 버전에서는 MongoDB가 DNS 이름 비교만 지원했습니다.- DNS 시드 목록 연결 의 경우
연결 프로토콜을
mongodb+srv
으로 지정하고, 그 뒤에 DNS SRV 호스트 이름 기록과 옵션을 지정합니다.authSource
및replicaSet
옵션이 연결 string 에 포함된 경우, TXT 레코드에 설정된 해당 DNS 구성 옵션보다 우선 적용됩니다.mongodb+srv:
연결 string 을 사용하면 클라이언트 연결에 대해 암시적으로 TLS/SSL(일반적으로ssl=true
(으)로 설정됨)이 활성화됩니다. 쿼리 string 에ssl=false
을(를) 설정하여 TLS/SSL 옵션을 해제할 수 있습니다.예시:
mongodb+srv://server.example.com/?connectionTimeout=3000ms 버전 3.6에 새로 추가되었습니다.
--eval <javascript>
인수로 지정된 JavaScript 표현식을 평가합니다.
mongo
은(는) 코드를 평가할 때 자체 환경을 로드하지 않습니다. 따라서 shell 환경의 많은 옵션을 사용할 수 없습니다.
--username <username>, -u <username>
인증을 사용하는 MongoDB 데이터베이스에 인증하는 데 사용할 사용자 이름을 지정합니다.
--password
및--authenticationDatabase
옵션과 함께 사용합니다.를 사용하여 MongoDB Atlas 클러스터에 연결하는
MONGODB-AWS
authentication mechanism
경우 이 필드 또는 연결 문자열 에 AWS 액세스 키 ID를 지정합니다. 또는 이 값을 환경 변수 로 제공할 수도AWS_ACCESS_KEY_ID
있습니다.AWS IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기를 참조하세요.
--password <password>, -p <password>
인증을 사용하는 MongoDB 데이터베이스에 인증하는 데 사용할 비밀번호를 지정합니다.
--username
및--authenticationDatabase
옵션과 함께 사용합니다.mongo
가 비밀번호를 입력하라는 메시지를 표시하도록 하려면 마지막 옵션으로--password
옵션을 입력하고 인수를 생략합니다.를 사용하여 MongoDB Atlas 클러스터에 연결하는
MONGODB-AWS
authentication mechanism
경우 이 필드 또는 연결 문자열 에 AWS 시크릿 액세스 키를 지정합니다. 또는 이 값을 환경 변수 로 제공할 수도AWS_SECRET_ACCESS_KEY
있습니다.AWS IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기를 참조하세요.
--apiVersion <version number>
버전 5.0에 추가.
apiVersion 을 지정합니다. 현재로서는
"1"
가 유일하게 지원되는 값입니다.
--apiStrict
버전 5.0에 추가.
애플리케이션이 Stable API 외부의 명령이나 동작을 사용하는 경우 서버가 APIStrictError 로 응답하도록 지정합니다.
--apiStrict
를 지정하는 경우--apiVersion
도 지정해야 합니다.
--apiDeprecationErrors
버전 5.0에 추가.
애플리케이션이 지정된 apiVersion에서 더 이상 사용되지 않는 명령이나 동작을 사용하는 경우 서버가 APIDeprecationError 로 응답하도록 지정 합니다.
--apiDeprecationErrors
를 지정하는 경우--apiVersion
도 지정해야 합니다.
--awsIamSessionToken <aws session token>
MongoDB Atlas
MONGODB-AWS
authentication mechanism
Amazon Web Services 액세스 키 및 비밀 액세스 키 외에 및 세션 ID 토큰을 사용하여 클러스터에 연결하는 경우, 이 필드 또는 연결 에 Amazon Web Services 세션 토큰을 지정합니다. string. 또는 이 값을 환경 변수AWS_SESSION_TOKEN
로 제공할 수도 있습니다. Amazon Web Services IAM 자격 증명을 사용하여 MongoDB Atlas cluster 에 연결하기를 참조하세요.MONGODB-AWS
authentication mechanism
을 사용할 때만 유효합니다.
--help, -h
옵션 및
mongo
의 사용에 대한 정보를 반환합니다.
--version
mongo
릴리스 번호를 반환합니다.
--networkMessageCompressors <string>
버전 3.4에 새로 추가되었습니다.
이
mongo
셸과 다음 간의 통신을 위해 네트워크 압축을 활성화합니다.지정할 수 있는 압축기는 다음과 같습니다.
중요
양쪽 당사자가 네트워크 압축을 활성화하면 메시지가 압축됩니다. 그렇지 않으면 양 당사자 간의 메시지는 압축되지 않습니다.
여러 압축기를 지정하는 경우 통신 개시자뿐만 아니라 압축기를 나열하는 순서도 중요합니다. 예를 들어,
mongosh
가 다음 네트워크 압축기zlib,snappy
를 지정하고mongod
는snappy,zlib
를 지정하는 경우mongosh
와mongod
사이의 메시지는zlib
를 사용합니다.양 당사자가 공통 압축기를 적어도 하나 이상 공유하지 않는 경우, 당사자 간의 메시지는 압축되지 않습니다. 예를 들어,
mongosh
가 네트워크 압축기zlib
를 지정하고mongod
가snappy
를 지정하는 경우mongosh
와mongod
사이의 메시지는 압축되지 않습니다.
--ipv6
IPv6 지원을 활성화합니다.
mongo
은(는) 기본적으로 IPv6 을(를) 비활성화합니다.IPv6 를 통해 MongoDB 클러스터에
--ipv6
연결하려면 셸을 시작할 때--host <mongod/mongos IPv6 address>
mongo
및 를 모두 지정해야 합니다.및 는 기본적으로
mongod
IPv6mongos
지원을 비활성화합니다.6--ipv6
에 연결할 때 을 지정해도mongod/mongos
6 에서mongod/mongos
IPv 지원이 활성화되지 않습니다. 에서 IPv6 지원을 활성화하는 방법에 대한 문서는mongod/mongos
를net.ipv6
참조하세요.
<db name>
연결할 데이터베이스의 이름을 지정합니다. 예를 들면 다음과 같습니다.
mongo admin 위의 명령은
mongo
셸을 로컬 머신에서 실행 중인 MongoDB 배포의 관리 데이터베이스 에 연결합니다. 확인 가능한 호스트 이름 또는 IP 주소를 사용하여 원격 데이터베이스 인스턴스를 지정할 수 있습니다./
문자를 사용하여 데이터베이스 이름과 호스트 이름을 구분합니다. 다음 예시를 참조하세요.mongo mongodb1.example.net/test mongo mongodb1/admin mongo 10.8.8.10/test 이 구문은 특정 데이터베이스에 연결할 수 있는 유일한 방법입니다.
대체 호스트와 데이터베이스를 지정하려면 이 구문을 사용해야 하며
--host
또는--port
은 사용할 수 없습니다.
--disableJavaScriptJIT
버전 4 에서 변경되었습니다.0: 이제 JavaScript 엔진의 JIT 컴파일러는 기본적으로 비활성화되어 있습니다.
JavaScript 엔진의 JIT 컴파일러를 비활성화합니다.
--disableJavaScriptProtection
javascript 및 javascriptWithScope(*사용 중단됨*) 유형의 필드를
mongo
셸의 JavaScript 함수에 자동으로 마셜링할 수 있습니다.--disableJavaScriptProtection
플래그가 설정되면 문서에 포함된 JavaScript 함수를 즉시 실행할 수 있습니다. 다음 예제에서는 shell 내에서 이 동작을 보여 줍니다.> db.test.insertOne( { _id: 1, jsFunc: function(){ print( "hello" ) } } ) WriteResult({ "nInserted" : 1 }) > var doc = db.test.findOne( { _id: 1 } ) > doc { "_id" : 1, "jsFunc" : function (){ print ( "hello" ) } } > typeof doc.jsFunc function > doc.jsFunc() hello 기본 동작(
mongo
이--disableJavaScriptProtection
플래그 없이 시작되는 경우)은 임베디드 JavaScript 함수를 실행 불가능한 MongoDB Shell 유형Code
으로 변환하는 것입니다. 다음 예제는 셸 내의 기본 동작을 보여줍니다.> db.test.insertOne( { _id: 1, jsFunc: function(){ print("hello") } } ) WriteResult({ "nInserted" : 1 }) > var doc = db.test.findOne( { _id: 1 } ) > doc { "_id" : 1, "jsFunc" : { "code" : "function (){print(\"hello\")}" } } > typeof doc.jsFunc object > doc.jsFunc instanceof Code true > doc.jsFunc() uncaught exception: TypeError: doc.jsFunc is not a function : @(shell):1:1
<file.js>
실행 후 종료할 JavaScript 파일을 지정합니다. 일반적으로 이 옵션을 마지막 옵션으로 지정해야 합니다.
참고
옵션
실행할 JavaScript 파일을 지정 하고
mongo
--password
을 사용하여 비밀번호를 입력하라는 메시지를 표시하도록 허용하려면 다음과 같이--username
및--password
를 마지막 옵션으로 사용하여 파일 이름을 첫 번째 매개 변수로 전달합니다.mongo file.js --username username --password 파일 실행이 완료된 후 셸로 돌아가려면
--shell
옵션을 사용합니다.
인증 옵션
--authenticationDatabase <dbname>
지정된
--username
이 생성된 인증 데이터베이스를 지정합니다. 인증 데이터베이스를 참조하세요.--authenticationDatabase
에 값을 지정하지 않으면mongo
는 연결 문자열에 지정된 데이터베이스를 사용합니다.GSSAPI (Kerberos), PLAIN (LDAP SASL) 또는
MONGODB-AWS
authentication mechanisms
을 사용하는 경우--authenticationDatabase
을$external
로 설정해야 합니다.
--authenticationMechanism <name>
기본값: SCRAM-SHA-1
mongo
인스턴스가mongod
또는mongos
에 인증하는 데 사용하는 인증 메커니즘을 지정합니다.버전 4 에서 변경되었습니다.4: MongoDB 4 사용.4,
mongo
셸은 MongoDB Atlas 클러스터에 연결할 때 새로운MONGODB-AWS
인증 메커니즘에 대한 지원을 추가합니다.값설명RFC 5802 SHA-1 해시 함수를 사용하는 표준 Salted Challenge Response 인증 메커니즘.RFC 7677 표준 SHA-256 해시 함수를 사용하는 솔티드 챌린지 응답 인증 메커니즘.
featureCompatibilityVersion이
4.0
으로 설정되어야 합니다.MongoDB TLS/SSL 인증서 인증.MONGODB-AWS
MongoDB Atlas 클러스터에 연결하기 위해 AWS IAM 자격 증명을 사용하는 외부 인증입니다. AWS IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기를 참조하세요.GSSAPI(Kerberos)Kerberos를 사용한 외부 인증. 이 메커니즘은 MongoDB Enterprise 에서만 사용할 수 있습니다.PLAIN (LDAP SASL)LDAP를 사용한 외부 인증.PLAIN
을(를) 사용하여 데이터베이스 내 사용자를 인증할 수도 있습니다.PLAIN
은(는) 비밀번호를 일반 텍스트로 전송합니다. 이 메커니즘은 MongoDB Enterprise 에서만 사용할 수 있습니다.
--gssapiHostName
GSSAPI/Kerberos 를 사용하여 서비스의 호스트 이름을 지정합니다. 시스템의 호스트 이름이 DNS에서 확인된 호스트 이름과 일치하지 않는 경우 에만 필요합니다.
이 옵션은 MongoDB Enterprise에서만 사용할 수 있습니다.
--gssapiServiceName
GSSAPI/Kerberos 를 사용하여 서비스 이름을 지정합니다. 서비스가 기본 이름
mongodb
를 사용하지 않는 경우에만 필요합니다.이 옵션은 MongoDB Enterprise에서만 사용할 수 있습니다.
TLS 옵션
참고
mongo
은(는) TLS 1.1+를 사용할 수 있는 시스템에서 TLS 1.0 암호화에 대한 지원을 비활성화합니다.
--tls
버전 4.2에 추가되었습니다.
TLS/SSL 지원이 활성화된
mongod
또는mongos
에 대한 연결을 활성화합니다.--tlsCAFile
또는net.tls.CAFile
(또는 그 별칭--sslCAFile
또는ssl.CAFile
)을 지정하지 않으면 TLS/SSL 지원 서버에 연결할 때 시스템 전체 CA 인증서 저장소가 사용됩니다. 이전 버전의 MongoDB에서는mongosh
이(가) 인증서의 유효성을 검사할 수 없다는 오류와 함께 종료되었습니다.--tlsCertificateSelector
또는--net.tls.certificateSelector
을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시--tlsCAFile
또는net.tls.CAFile
을(를) 지정해야 합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--tlsCertificateKeyFile <filename>
버전 4.2에 추가되었습니다.
mongo
셸의 TLS/SSL 인증서와 키가 모두 포함된.pem
파일을 지정합니다. 상대 경로 또는 절대 경로를 사용하여.pem
파일의 이름을 지정합니다.이 옵션은
--tls
옵션을 사용하여 클라이언트mongod
인증서 가mongos
필요한 또는 인스턴스에 연결할 때 필요합니다. 즉,mongo
셸은 이 인증서를 서버에 제공합니다.mongod
/mongos
는 제시된 x.509 인증서가mongod/mongos
호스트 시스템 시간으로부터30
일 이내에 만료되는 경우 연결 시 경고를 기록합니다. 자세한 내용은 경고를 트리거하는 만료 임박 x.509 인증서를 참조하세요.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--tlsCertificateKeyFilePassword <value>
버전 4.2에 추가되었습니다.
인증서-키 파일 해독을 위한 비밀번호를 지정합니다(예:
--tlsCertificateKeyFile
).인증서 키 파일이 암호화된 경우에만
--tlsCertificateKeyFilePassword
옵션을 사용합니다. 모든 경우에mongo
는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.PEM 파일의 개인 키가 암호화되어 있고
--tlsCertificateKeyFilePassword
옵션을 지정하지 않은 경우mongo
에서 암호를 입력하라는 메시지가 표시됩니다. TLS/SSL 인증서 암호를 참조하세요.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--tlsCAFile <filename>
버전 4.2에 추가되었습니다.
인증 기관의 루트 인증서 체인이 포함된
.pem
파일을 지정합니다. 이 파일은mongod
/mongos
인스턴스에서 제공한 인증서의 유효성을 검사하는 데 사용됩니다.상대 경로 또는 절대 경로를 사용해
.pem
파일의 이름을 지정합니다.--tlsCAFile
또는net.tls.CAFile
(또는 그 별칭--sslCAFile
또는ssl.CAFile
)을 지정하지 않으면 TLS/SSL 지원 서버에 연결할 때 시스템 전체 CA 인증서 저장소가 사용됩니다. 이전 버전의 MongoDB에서는mongosh
이(가) 인증서의 유효성을 검사할 수 없다는 오류와 함께 종료되었습니다.--tlsCertificateSelector
또는--net.tls.certificateSelector
을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시--tlsCAFile
또는net.tls.CAFile
을(를) 지정해야 합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--tlsCRLFile <filename>
버전 4.2에 추가: MongoDB 4.0 이하에서는
--sslCRLFile
를참조하세요.인증서 해지 목록이 포함된
.pem
파일을 지정합니다. 상대 경로 또는 절대 경로를.pem
파일의 이름을 지정합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.참고
MongoDB는 버전 4.4부터 인증서 해지를 확인하기 위해 CRL 파일을 지정하거나 시스템 SSL 인증서 저장소를 사용하는 대신 온라인 인증서 상태 프로토콜(OCSP)을 사용하도록
enables
합니다.
--tlsAllowInvalidHostnames
버전 4.2에 추가되었습니다.
mongod
/mongos
인스턴스에서 제공하는 인증서의 호스트 이름 유효성 검사를 비활성화합니다. 서버 인증서의 호스트 이름이 서버의 호스트와 일치하지 않더라도mongo
가 MongoDB 인스턴스에 연결할 수 있도록 허용합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--tlsAllowInvalidCertificates
버전 4.2에 추가되었습니다.
mongod
/mongos
인스턴스에서 제공하는 인증서에 대한 유효성 검사를 우회하고 유효하지 않은 인증서를 제공하는 서버에 대한 연결을 허용합니다.참고
--tlsAllowInvalidCertificates
또는net.tls.allowInvalidCertificates: true
지정하는 경우 유효하지 않은 인증서는 TLS 연결을 설정하는 데만 충분하지만 인증에는 충분하지 않습니다 .경고
--sslAllowInvalidCertificates
옵션은 사용할 수 있는 경우에도 가급적 사용하지 않는 것이 좋습니다.--sslAllowInvalidCertificates
를 사용해야만 하는 경우, 침입이 불가능한 시스템에서만 옵션을 사용하세요.mongosh
(및 기타 MongoDB 도구)가--sslAllowInvalidCertificates
옵션으로 실행되는 경우,mongosh
(및 기타 MongoDB 도구)는 서버 인증서의 유효성 검사를 시도하지 않습니다. 이로 인해 만료된mongod
및mongos
인증서는 물론 유효한mongod
또는mongos
인스턴스로 가장하는 외부 프로세스에 대한 취약성이 발생합니다. TLS/SSL 인증서에서 호스트 이름 유효성 검사만 비활성화해야 하는 경우--sslAllowInvalidHostnames
를 참조하세요.ssl.allowInvalidCertificates
설정을 사용할 때 MongoDB는 유효하지 않은 인증서 사용에 대한 경고를 로그합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--tlsFIPSMode
버전 4.2에 추가되었습니다.
mongo
가 TLS/SSL 라이브러리의 FIPS 모드를 사용하도록 지시합니다.--tlsFIPSMode
옵션을 사용하려면 시스템에 FIPS를 준수하는 라이브러리가 있어야 합니다.참고
FIPS와 호환되는 TLS/SSL은 MongoDB Enterprise 에서만 사용할 수 있습니다. 자세한 내용 은 FIPS용 MongoDB 구성 을 참조하세요.
--tlsCertificateSelector <parameter>=<value>
버전 4.2에 추가됨: Windows 및 macOS에서
--tlsCertificateKeyFile
의대안으로 사용할 수 있습니다.--tlsCertificateKeyFile
및--tlsCertificateSelector
옵션은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.운영 체제의 인증서 저장소에서 일치하는 인증서를 선택하기 위해 인증서 속성을 지정합니다.
--tlsCertificateSelector
는<property>=<value>
형식의 인수를 받으며, 여기서 속성은 다음 중 하나일 수 있습니다.속성값 유형설명subject
ASCII 문자열인증서의 주체 이름 또는 일반 이름thumbprint
16진수 문자열16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.
thumbprint
을(를)fingerprint
(이)라고 부르기도 합니다.시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.
mongod
/mongos
는 제시된 x.509 인증서가mongod/mongos
호스트 시스템 시간으로부터30
일 이내에 만료되는 경우 연결 시 경고를 기록합니다. 자세한 내용은 경고를 트리거하는 만료 임박 x.509 인증서를 참조하세요.
--tlsDisabledProtocols <string>
버전 4.2에 추가되었습니다.
지정된 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
로 지정합니다.
SSL 옵션(사용 중단됨)
중요
버전 4 부터 시작됩니다.2, SSL 옵션은 더 이상 사용되지 않습니다. 대신 TLS에 해당하는 것을 사용하세요. SSL 프로토콜은 더 이상 사용되지 않으며 MongoDB는 TLS 1 를 지원합니다.0 이상.
참고
mongo
은(는) TLS 1.1+를 사용할 수 있는 시스템에서 TLS 1.0 암호화에 대한 지원을 비활성화합니다.
--ssl
버전 4.2 이후 사용 중단됨: 대신
--tls
을(를) 사용하세요.TLS/SSL 지원이 활성화된
mongod
또는mongos
에 대한 연결을 활성화합니다.--tlsCAFile
또는net.tls.CAFile
(또는 그 별칭--sslCAFile
또는ssl.CAFile
)을 지정하지 않으면 TLS/SSL 지원 서버에 연결할 때 시스템 전체 CA 인증서 저장소가 사용됩니다. 이전 버전의 MongoDB에서는mongosh
이(가) 인증서의 유효성을 검사할 수 없다는 오류와 함께 종료되었습니다.--tlsCertificateSelector
또는--net.tls.certificateSelector
을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시--tlsCAFile
또는net.tls.CAFile
을(를) 지정해야 합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslPEMKeyFile <filename>
버전 4.2 이후 사용 중단됨: 대신
--tlsCertificateKeyFile
을(를) 사용하세요.TLS/SSL 인증서와 키가 모두 포함되어 있는
.pem
파일을 지정합니다. 상대 경로 또는 절대 경로를 사용해.pem
파일의 이름을 지정합니다.이 옵션은
--ssl
옵션을 사용하여mongod
mongos
ssl.CAFile
없이 이 활성화된 또는 에 연결할 때ssl.allowConnectionsWithoutCertificates
필요합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslPEMKeyPassword <value>
버전 4.2 이후 사용 중단됨: 대신
--tlsCertificateKeyFilePassword
을(를) 사용하세요.인증서 키 파일(예:
--sslPEMKeyFile
)을 해독하기 위한 비밀번호를 지정합니다. 인증서 키 파일이 암호화된 경우에만--sslPEMKeyPassword
옵션을 사용합니다. 모든 경우에mongo
는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.PEM 파일의 개인 키가 암호화되어 있고
--sslPEMKeyPassword
옵션을 지정하지 않은 경우mongo
에서 암호를 입력하라는 메시지가 표시됩니다. TLS/SSL 인증서 암호를 참조하세요.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslCAFile <filename>
버전 4.2 이후 사용 중단됨: 대신
--tlsCAFile
을(를) 사용하세요.인증 기관의 루트 인증서 체인이 포함된
.pem
파일을 지정합니다. 상대 경로 또는 절대 경로를 사용하여.pem
파일의 이름을 지정합니다.--tlsCAFile
또는net.tls.CAFile
(또는 그 별칭--sslCAFile
또는ssl.CAFile
)을 지정하지 않으면 TLS/SSL 지원 서버에 연결할 때 시스템 전체 CA 인증서 저장소가 사용됩니다. 이전 버전의 MongoDB에서는mongosh
이(가) 인증서의 유효성을 검사할 수 없다는 오류와 함께 종료되었습니다.--tlsCertificateSelector
또는--net.tls.certificateSelector
을(를) 사용하지 않는 한, x.509 인증을 사용하려면 반드시--tlsCAFile
또는net.tls.CAFile
을(를) 지정해야 합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslCertificateSelector <parameter>=<value>
버전 4.2 이후 사용 중단됨: 대신
--tlsCertificateSelector
을(를) 사용하세요.버전 4.0에 추가되었습니다:
--tlsCertificateKeyFile
2}의 대안으로 Windows 및 macOS에서 사용할 수 있습니다.--tlsCertificateKeyFile
및--sslCertificateSelector
옵션은 상호 배타적입니다. 둘 중 하나만 지정해야 합니다.운영 체제의 인증서 저장소에서 일치하는 인증서를 선택하기 위해 인증서 속성을 지정합니다.
--sslCertificateSelector
는<property>=<value>
형식의 인수를 받으며, 여기서 속성은 다음 중 하나일 수 있습니다.속성값 유형설명subject
ASCII 문자열인증서의 주체 이름 또는 일반 이름thumbprint
16진수 문자열16진수로 표현되는 일련의 바이트로, SHA-1 다이제스트로 공개 키를 식별하는 데 사용됩니다.
thumbprint
을(를)fingerprint
(이)라고 부르기도 합니다.시스템 SSL 인증서 저장소를 사용할 때 온라인 인증서 상태 프로토콜(OCSP)을 사용해 인증서의 해지 상태를 확인할 수 있습니다.
--sslCRLFile <filename>
버전 4.2 이후 사용 중단됨: 대신
--tlsCRLFile
을(를) 사용하세요.인증서 해지 목록이 포함된
.pem
파일을 지정합니다. 상대 경로 또는 절대 경로를.pem
파일의 이름을 지정합니다.참고
MongoDB는 버전 4.4부터 인증서 해지를 확인하기 위해 CRL 파일을 지정하거나 시스템 SSL 인증서 저장소를 사용하는 대신 온라인 인증서 상태 프로토콜(OCSP)을 사용하도록
enables
합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslFIPSMode
버전 4.2 이후 사용 중단됨: 대신
--tlsFIPSMode
을(를) 사용하세요.mongo
가 TLS/SSL 라이브러리의 FIPS 모드를 사용하도록 지시합니다.--sslFIPSMode
옵션을 사용하려면 시스템에 FIPS를 준수하는 라이브러리가 있어야 합니다.참고
FIPS와 호환되는 TLS/SSL은 MongoDB Enterprise 에서만 사용할 수 있습니다. 자세한 내용 은 FIPS용 MongoDB 구성 을 참조하세요.
--sslAllowInvalidCertificates
버전 4.2 이후 사용 중단됨: 대신
--tlsAllowInvalidCertificates
을(를) 사용하세요.서버 인증서에 대한 유효성 검사를 우회하고 유효하지 않은 인증서를 사용하여 연결할 수 있도록 허용합니다.
참고
--tlsAllowInvalidCertificates
또는net.tls.allowInvalidCertificates: true
지정하는 경우 유효하지 않은 인증서는 TLS 연결을 설정하는 데만 충분하지만 인증에는 충분하지 않습니다 .경고
--sslAllowInvalidCertificates
옵션은 사용할 수 있는 경우에도 가급적 사용하지 않는 것이 좋습니다.--sslAllowInvalidCertificates
를 사용해야만 하는 경우, 침입이 불가능한 시스템에서만 옵션을 사용하세요.mongosh
(및 기타 MongoDB 도구)가--sslAllowInvalidCertificates
옵션으로 실행되는 경우,mongosh
(및 기타 MongoDB 도구)는 서버 인증서의 유효성 검사를 시도하지 않습니다. 이로 인해 만료된mongod
및mongos
인증서는 물론 유효한mongod
또는mongos
인스턴스로 가장하는 외부 프로세스에 대한 취약성이 발생합니다. TLS/SSL 인증서에서 호스트 이름 유효성 검사만 비활성화해야 하는 경우--sslAllowInvalidHostnames
를 참조하세요.ssl.allowInvalidCertificates
설정을 사용할 때 MongoDB는 유효하지 않은 인증서 사용에 대한 경고를 로그합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslAllowInvalidHostnames
버전 4.2 이후 사용 중단됨: 대신
--tlsAllowInvalidHostnames
을(를) 사용하세요.TLS/SSL 인증서의 호스트 이름 유효성 검사를 비활성화합니다. 인증서의 호스트 이름이 지정된 호스트 이름과 일치하지 않더라도
mongo
가 MongoDB 인스턴스에 연결할 수 있도록 허용합니다.TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한
mongod
및mongos
구성 및 클라이언트를 위한 TLS/SSL 구성을 참조하세요.
--sslDisabledProtocols <string>
버전 4.2 이후 사용 중단됨: 대신
--tlsDisabledProtocols
을(를) 사용하세요.지정된 TLS 프로토콜을 비활성화합니다. 이 옵션은
TLS1_0
,TLS1_1
,TLS1_2
및 버전 4 부터 프로토콜을 인식합니다.0.4 (및 3.6.9),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
을--sslDisabledProtocols
로 지정합니다.버전 3.6.5에 추가 되었습니다.
세션
--retryWrites
버전 3.6에 새로 추가되었습니다.
mongo
셸의 세션에 대한 기본값으로 재시도 가능 쓰기를 활성화합니다.세션에 대한 자세한 내용은 클라이언트 세션 및 인과관계 일관성 보장을 참조하세요.
클라이언트 측 필드 수준 암호화 옵션
--awsAccessKeyId <string>
AWS 액세스 키
List
Read
AWS 키 관리 서비스(KMS)에 대한 및 권한이mongo
있는 IAM 사용자와 연결됩니다. 셸은 지정된 를 사용하여--awsAccessKeyId
KMS에 액세스합니다.{ 셸 세션에
mongo
대해 클라이언트--awsAccessKeyId
측 필드 레벨--awsAccessKeyId
암호화 를 활성화하려면 이(가) 필요합니다. 에는 다음 명령줄 옵션이 모두 필요합니다.--awsAccessKeyId
이(가) 생략된 경우 셸 세션 내에서Mongo()
생성자를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를
--awsAccessKeyId
.로 지정하는 것이 좋습니다.
--awsSecretAccessKey <string>
Amazon Web Services 비밀 키 지정된 에
--awsAccessKeyId
연결됩니다.{ 셸 세션에
mongo
대해 클라이언트--awsSecretAccessKey
측 필드 레벨--awsSecretAccessKey
암호화 를 활성화하려면 이(가) 필요합니다. 에는 다음 명령줄 옵션이 모두 필요합니다.--awsSecretAccessKey
및 지원 옵션이 생략된 경우 셸 세션 내에서Mongo()
를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를
--awsSecretAccessKey
.로 지정하는 것이 좋습니다.
--awsSessionToken <string>
AWS 세션 토큰
--awsAccessKeyId
지정된에 연결됩니다.{ 셸 세션에
mongo
대해 클라이언트--awsSessionToken
측 필드 레벨--awsSessionToken
암호화 를 활성화하려면 이(가) 필요합니다. 에는 다음 명령줄 옵션이 모두 필요합니다.--awsSessionToken
및 지원 옵션이 생략된 경우 셸 세션 내에서Mongo()
를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.액세스 키가 로그에 유출될 위험을 줄이려면 환경 변수를
--awsSessionToken
.로 지정하는 것이 좋습니다.
--keyVaultNamespace <string>
클라이언트 측 필드 레벨 암호화 를 위한 키 모음으로 사용되는 컬렉션의 전체 네임스페이스(
<database>.<collection>
)입니다. 클라이언트 사이드 필드 수준 암호화를 활성화하려면--keyVaultNamespace
이(가) 필요합니다.mongo
셸 세션의 경우. 지정된 네임스페이스가 존재하지 않는 경우mongo
가 이를 생성합니다.--keyVaultNamespace
에는 다음 명령줄 옵션이 모두 필요합니다.--keyVaultNamespace
및 지원 옵션이 생략된 경우 셸 세션 내에서Mongo()
생성자를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.
SCons를 훈련
~/.dbshell
mongo
는.dbshell
파일에 명령 기록을 유지합니다.
~/.mongorc.js
mongo
는mongo
를 호출하는 사용자의 홈 디렉토리에서.mongorc.js
파일을 읽습니다. 파일에서 사용자는 변수를 정의하거나,mongo
셸 프롬프트를 사용자 지정하거나, 셸을 실행할 때마다 업데이트하려는 정보를 업데이트할 수 있습니다. 셸을 사용하여 명령줄에서mongo --eval
를 사용하거나 mongo에 .js 파일을 지정하여 JavaScript 파일 또는 표현식을 평가하는 경우mongo
는 JavaScript 처리가 완료된 후.mongorc.js
파일을 읽습니다..mongorc.js
읽기를 비활성화하려면--norc
옵션을 지정합니다.
/etc/mongorc.js
mongo
셸이 시작 시 평가하는 글로벌mongorc.js
파일입니다. 사용자에게HOME
디렉토리에.mongorc.js
파일이 있는 경우mongo
셸은 사용자의.mongorc.js
파일을 평가 하기 전에 전역/etc/mongorc.js
파일을 평가합니다./etc/mongorc.js
셸을 실행하는 사용자에 대한 읽기 권한이 있어야 합니다. 에 대한--norc
옵션은mongo
사용자의.mongorc.js
파일만 억제합니다.Windows에서는 글로벌
mongorc.js </etc/mongorc.js>
이(가)%ProgramData%\MongoDB
디렉토리에 있습니다./tmp/mongo_edit{<time_t>}.js
- 파일 편집 시
mongo
에 의해 생성됩니다. 파일이 있는 경우mongo
은(는) 시간 값에1
~10
의 정수를 추가하여 고유한 파일을 생성하려고 시도합니다. %TEMP%mongo_edit{<time_t>}.js
- 파일을 편집할 때 Windows에서
mongo.exe
에 의해 생성됩니다. 파일이 있는 경우mongo
은(는) 시간 값에1
~10
의 정수를 추가하여 고유한 파일을 생성하려고 시도합니다.
환경
EDITOR
edit
셸 명령과 함께 사용할 편집기의 경로를 지정합니다. JavaScript 변수EDITOR
이(가)EDITOR
값을 재정의합니다.
HOME
mongo
가.mongorc.js
파일을 읽고.dbshell
파일을 쓸 홈 디렉토리의 경로를 지정합니다.
HOMEPATH
mongo
가.mongorc.js
파일을 읽고.dbshell
파일을 쓸 홈 디렉토리의 Windows 경로를 지정합니다.
키보드 단축키
mongo
셸은 다음 키보드 단축키를 지원합니다: [1]
키 바인딩 | 기능 |
---|---|
위쪽 화살표 | 기록에서 이전 명령 조회 |
아래쪽 화살표 | 기록에서 다음 명령 검색 |
홈 | 줄의 시작으로 Go |
끝 | 줄의 끝으로 Go |
탭 | 자동 완성 메서드/명령 |
왼쪽 화살표 | 한 문자 뒤로 Go |
오른쪽 화살표 | 한 문자 앞으로 Go |
Ctrl- 왼쪽 화살표 | 한 단어 뒤로 이동 |
Ctrl-우측 화살표 | 한 단어 앞으로 Go |
메타 왼쪽 화살표 | 한 단어 뒤로 이동 |
메타 오른쪽 화살표 | 한 단어 앞으로 Go |
Ctrl-A | 줄의 시작 부분으로 Go |
Ctrl-B | 한 문자 뒤로 Go |
Ctrl-C | mongo 셸 종료 |
Ctrl-D | 문자 삭제 (또는 mongo shell 종료) |
Ctrl-E | 줄 끝으로 이동 |
Ctrl-F | 한 문자 앞으로 Go |
Ctrl-G | 중단 |
Ctrl-J | 라인 수락/평가 |
Ctrl-K | 줄 죽이기/지우기 |
Ctrl-L 또는 다음을 입력합니다. cls | 화면 지우기 |
Ctrl-M | 라인 수락/평가 |
Ctrl-N | 기록에서 다음 명령 검색 |
Ctrl-P | 기록에서 이전 명령 조회 |
Ctrl-R | 역방향 검색 명령 기록 |
Ctrl-S | 정방향 검색 명령 기록 |
Ctrl-T | 문자 바꾸기 |
Ctrl-U | Unix 라인 삭제 수행 |
Ctrl-W | Unix word-Rubout 수행 |
Ctrl-Y | 양크 |
Ctrl-Z | 일시 중단(Linux에서 작업 제어 작동) |
Ctrl-H | 문자 역방향 삭제 |
Ctrl-I | 완료(탭과 동일) |
메타-B | 한 단어 뒤로 이동 |
메타-C | 단어 대문자 사용 |
메타-D | 킬 워드 |
메타-F | 한 단어 앞으로 Go |
메타-L | 단어를 소문자로 변경 |
메타-U | 단어를 대문자로 변경 |
메타-Y | 양팝 |
메타 백스페이스 | 단어 역방향 삭제 |
메타-< | 명령 기록에서 첫 번째 명령 조회 |
메타-> | 명령 기록에서 마지막 명령 조회 |
[1] | MongoDB는 다중 키 바인딩을 지원합니다. 2.0 이후 mongo 에는 기본 emacs 키 바인딩에 대한 지원이 포함됩니다. |
다음을 사용하세요.
일반적으로 사용자는 시스템 프롬프트에서 mongo
명령을 사용하여 셸을 호출합니다. 다른 시나리오에 대해서는 다음 예시를 고려하세요.
액세스 mongod
제어를 사용하여 인스턴스에 연결
인증 및 비표준 포트를 사용하여 원격 호스트의 데이터베이스에 연결하려면 다음 양식을 사용하세요.
mongo --username <user> --password --host <host> --port 28015
또는 다음과 같은 짧은 형식을 고려하세요.
mongo -u <user> -p --host <host> --port 28015
<user>
및 <host>
를 상황에 적합한 값으로 바꾸고 필요에 따라 --port
를 대체하거나 생략합니다.
--password
또는 -p
명령줄 옵션에 비밀번호를 지정하지 않으면 mongo
셸에서 비밀번호를 입력하라는 메시지를 표시합니다.
DNS 시드 목록 연결 형식을 사용하여 복제본 세트에 연결하기
버전 3.6에 새로 추가되었습니다.
SRV 연결 형식 을 사용하여 설명된 복제본 세트에 연결하려면 --host
옵션을 사용하여 mongo
셸에 대한 연결 문자열을 지정합니다. 다음 예에서 DNS 구성은 다음과 유사합니다.
Record TTL Class Priority Weight Port Target _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com. _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.
DNS 항목의 TXT 레코드에는 replicaSet
및 authSource
옵션이 포함되어 있습니다.
Record TTL Class Text server.example.com. 86400 IN TXT "replicaSet=rs0&authSource=admin"
그런 다음 명령은 mongo
셸을 복제본 세트에 연결합니다.
mongo --host "mongodb+srv://server.example.com/?username=allison"
mongo
셸은 username
옵션에 지정된 사용자의 비밀번호를 입력하라는 메시지를 자동으로 표시합니다.
AWS IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기
버전 4.4에 추가되었습니다.
AWS IAM 자격 증명 을 통해 인증을 지원하도록 구성된 MongoDB Atlas 클러스터에 연결하려면 셸에 다음과 mongo
유사한 연결 문자열 을 제공합니다.
mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'
이 방식으로 Amazon Web Services IAM 자격 증명을 사용하여 Atlas에 연결하는 경우 이 예시와 같이 MONGODB-AWS
authentication mechanism
및 $external
authSource
가 사용됩니다.
AWS 세션 토큰 을 사용하는 경우 AWS_SESSION_TOKEN
다음과 authMechanismProperties
같이 연결 문자열 의 값과 함께 제공합니다.
mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>'
참고
또는 다음과 같이 --awsIamSessionToken
, --password
및 --username
옵션을 사용하여 연결 외부에서 Amazon Web Services 액세스 키 ID, 비밀 액세스 키 및 선택적으로 세션 토큰을 각각 제공할 수 있습니다.string
mongo 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsIamSessionToken <aws session token>
명령줄 매개변수로 제공되는 경우 이러한 세 가지 옵션에는 퍼센트 인코딩이 필요하지 않습니다.
표준 AWS IAM 환경 변수 를 사용하여 플랫폼에서 이러한 자격 증명을 설정할 수도 있습니다. .mongo
셸은 를 사용할 때 다음 환경 변수를 MONGODB-AWS
authentication mechanism
확인합니다.
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
설정된 경우 이러한 자격 증명을 연결 string 에 지정하거나 mongo
shell 에 대한 명시적 옵션을 통해 지정할 필요가 없습니다(예: --username
및 --password
).
다음 예시에서는 bash
셸에서 이러한 환경 변수를 설정합니다.
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
다른 셸에서 환경 변수를 설정하는 구문은 다를 수 있습니다. 자세한 내용은 사용 중인 플랫폼의 설명서를 참조하세요.
다음 명령어로 이러한 환경 변수가 설정되었는지 확인할 수 있습니다.
env | grep AWS
설정이 완료되면 다음 예제에서는 이러한 환경 변수를 사용하여 MongoDB Atlas 클러스터에 연결합니다.
mongo 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'
셸에 대해 JavaScript 실행 mongo
세션을 시작하기 전에 파일을 평가하지 않고 파일을 실행하려면 JavaScript ~/.mongorc.js
shell 다음 형식을 사용합니다.
mongo --shell --norc alternate-environment.js
명령줄에 입력되는 대신 비밀번호를 입력하라는 메시지를 표시하여 인증을 통해 JavaScript 파일을 실행하려면 다음 양식을 사용하세요.
mongo script-file.js -u <user> -p
--eval
을 사용하여 JavaScript 코드 실행
--eval
옵션을 사용하여 명령줄에서 직접 JavaScript를 실행할 수 있습니다.
예를 들어, 다음 작업은 collection을 쿼리하고 결과를 JSON으로 출력하는 JavaScript 문자열을 평가합니다.
Linux 및 macOS에서는 작은따옴표를 사용해야 합니다(예: '
)로 지정하여 다음 형식을 사용하여 JavaScript를 묶습니다.
mongo --eval 'db.collection.find().forEach(printjson)'
Windows에서는 다음 형식을 사용하여 JavaScript를 묶을 때 큰따옴표(예: "
)를 사용해야 합니다.
mongo --eval "db.collection.find().forEach(printjson)"