문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / /

레거시 mongo

이 페이지의 내용

  • 설명
  • 구문
  • 옵션
  • SCons를 훈련
  • 환경
  • 키보드 단축키
  • 다음을 사용하세요.

참고

mongo shell 은 MongoDB v5.0에서 더 이상 사용되지 않습니다. 대체품은 mongosh 입니다.

이전 mongo 셸 문서는 해당 MongoDB 릴리스에 해당하는 문서에 포함되어 있습니다.

이전 버전으로의 빠른 링크

자세한 내용은 mongo 셸과 mongosh비교 를 참조하세요.

mongo 는 에 대한 JavaScript shell 대화형 MongoDB 인터페이스로, 시스템 관리자를 위한 강력한 인터페이스와 개발자가 데이터베이스를 사용하여 쿼리 및 작업을 직접 테스트할 수 있는 방법을 제공합니다. mongo 은 또한 MongoDB와 함께 사용할 수 있는 모든 기능을 갖춘 JavaScript 환경을 제공합니다.

mongo 셸은 MongoDB 서버 설치 의 일부로 포함됩니다. 서버를 이미 설치한 경우 mongo 셸은 서버 바이너리와 동일한 위치에 설치됩니다.

또는 mongo 셸을 MongoDB Server와 별도로 다운로드하려면 다음 단계에 따라 셸을 독립형 패키지로 설치할 수 있습니다.

  1. 사용 중인 MongoDB 에디션의 다운로드 센터에 액세스합니다.

  2. 드롭다운에서 원하는 VersionPlatform 를 선택합니다.

  3. 플랫폼에 따라 다운로드할 Package 을(를) 선택합니다.

    플랫폼
    패키지 다운로드
    Windows
    zip 패키지를 선택하여 mongo shell 이 포함된 아카이브를 다운로드합니다.
    macOS
    tgz 패키지를 선택하여 mongo shell 이 포함된 아카이브를 다운로드합니다.
    리눅스
    tgz 패키지를 선택하여 mongo 셸을 다운로드합니다.
  4. 아카이브에서 mongo 셸을 파일 시스템의 위치로 복사합니다.

플랫폼별 추가 설치 지침을 확인하거나 mongo 셸을 MongoDB Server 설치의 일부로 설치하려면 해당 플랫폼의 설치 가이드를 참조하세요.

참고

  • MongoDB 4.2 (및 4.0.13)부터, mongo shell 은 정품이 아닌 MongoDB 인스턴스에 연결될 때 경고 메시지를 표시하는데, 이는 이러한 인스턴스가 공식 MongoDB 인스턴스와 다르게 작동할 수 있기 때문입니다. 예: 누락되거나 불완전한 기능, 다양한 기능 동작 등

  • mongo 은(는) TLS 1.1+를 사용할 수 있는 시스템에서 TLS 1.0 암호화에 대한 지원을 비활성화합니다.

  • 기본 설정을 사용하여 명령줄 옵션 없이 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 내에서 데이터베이스에 연결하려면 새 연결 열기를 참조하세요.

--norc

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

--quiet

연결 프로세스 중에 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 호스트 이름 기록과 옵션을 지정합니다. authSourcereplicaSet 옵션이 연결 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-AWSauthentication mechanism을 사용할 때만 유효합니다.

--help, -h

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

--version

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

--verbose

연결 프로세스 중 shell 출력의 상세도를 높입니다.

--networkMessageCompressors <string>

버전 3.4에 새로 추가되었습니다.

mongo 셸과 다음 간의 통신을 위해 네트워크 압축을 활성화합니다.

지정할 수 있는 압축기는 다음과 같습니다.

  • 스내피

  • zlib (MongoDB 3.6부터 사용 가능)

  • zstd (MongoDB 4.2부터 사용 가능)

중요

양쪽 당사자가 네트워크 압축을 활성화하면 메시지가 압축됩니다. 그렇지 않으면 양 당사자 간의 메시지는 압축되지 않습니다.

여러 압축기를 지정하는 경우 통신 개시자뿐만 아니라 압축기를 나열하는 순서도 중요합니다. 예를 들어, mongosh가 다음 네트워크 압축기 zlib,snappy를 지정하고 mongodsnappy,zlib를 지정하는 경우 mongoshmongod 사이의 메시지는 zlib를 사용합니다.

양 당사자가 공통 압축기를 적어도 하나 이상 공유하지 않는 경우, 당사자 간의 메시지는 압축되지 않습니다. 예를 들어, mongosh가 네트워크 압축기 zlib를 지정하고 mongodsnappy를 지정하는 경우 mongoshmongod 사이의 메시지는 압축되지 않습니다.

--ipv6

IPv6 지원을 활성화합니다. mongo 은(는) 기본적으로 IPv6 을(를) 비활성화합니다.

IPv6 를 통해 MongoDB 클러스터에 --ipv6 연결하려면 셸을 시작할 때 --host <mongod/mongos IPv6 address> mongo 를 모두 지정해야 합니다.

및 는 기본적으로mongod IPv6 mongos 지원을 비활성화합니다.6 --ipv6 에 연결할 때 을 지정해도 mongod/mongos 6 에서 mongod/mongos IPv 지원이 활성화되지 않습니다. 에서 IPv6 지원을 활성화하는 방법에 대한 문서는 mongod/mongosnet.ipv6 참조하세요.

<db name>

연결할 데이터베이스의 이름을 지정합니다. 예를 들면 다음과 같습니다.

mongo admin

위의 명령은 mongo 셸을 로컬 머신에서 실행 중인 MongoDB 배포의 관리 데이터베이스 에 연결합니다. 확인 가능한 호스트 이름 또는 IP 주소를 사용하여 원격 데이터베이스 인스턴스를 지정할 수 있습니다. / 문자를 사용하여 데이터베이스 이름과 호스트 이름을 구분합니다. 다음 예시를 참조하세요.

mongo mongodb1.example.net/test
mongo mongodb1/admin
mongo 10.8.8.10/test

이 구문은 특정 데이터베이스에 연결할 수 있는 유일한 방법입니다.

대체 호스트와 데이터베이스를 지정하려면 이 구문을 사용해야 하며 --host 또는 --port 은 사용할 수 없습니다.

--enableJavaScriptJIT

버전 4.0에 추가.

JavaScript 엔진의 JIT 컴파일러를 활성화합니다.

--disableJavaScriptJIT

버전 4 에서 변경되었습니다.0: 이제 JavaScript 엔진의 JIT 컴파일러는 기본적으로 비활성화되어 있습니다.

JavaScript 엔진의 JIT 컴파일러를 비활성화합니다.

--disableJavaScriptProtection

javascriptjavascriptWithScope(*사용 중단됨*) 유형의 필드를 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 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에서만 사용할 수 있습니다.

참고

mongo 은(는) TLS 1.1+를 사용할 수 있는 시스템에서 TLS 1.0 암호화에 대한 지원을 비활성화합니다.

참조:

MongoDB가 지원하는 설명서 전체를 활용하려면 TLS/SSL에 mongodmongos를 구성하세요.

--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을 위한 mongodmongos 구성클라이언트를 위한 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을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

--tlsCertificateKeyFilePassword <value>

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

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

인증서 키 파일이 암호화된 경우에만 --tlsCertificateKeyFilePassword 옵션을 사용합니다. 모든 경우에 mongo 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

PEM 파일의 개인 키가 암호화되어 있고 --tlsCertificateKeyFilePassword 옵션을 지정하지 않은 경우 mongo 에서 암호를 입력하라는 메시지가 표시됩니다. TLS/SSL 인증서 암호를 참조하세요.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 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을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

--tlsCRLFile <filename>

버전 4.2에 추가: MongoDB 4.0 이하에서는 --sslCRLFile참조하세요.

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

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

참고

MongoDB는 버전 4.4부터 인증서 해지를 확인하기 위해 CRL 파일을 지정하거나 시스템 SSL 인증서 저장소를 사용하는 대신 온라인 인증서 상태 프로토콜(OCSP)을 사용하도록 enables 합니다.

--tlsAllowInvalidHostnames

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

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

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

--tlsAllowInvalidCertificates

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

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

참고

--tlsAllowInvalidCertificates 또는 net.tls.allowInvalidCertificates: true 지정하는 경우 유효하지 않은 인증서는 TLS 연결을 설정하는 데만 충분하지만 인증에는 충분하지 않습니다 .

경고

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

mongosh (및 기타 MongoDB 도구)가 --sslAllowInvalidCertificates 옵션으로 실행되는 경우, mongosh (및 기타 MongoDB 도구)는 서버 인증서의 유효성 검사를 시도하지 않습니다. 이로 인해 만료된 mongodmongos 인증서는 물론 유효한 mongod 또는 mongos 인스턴스로 가장하는 외부 프로세스에 대한 취약성이 발생합니다. TLS/SSL 인증서에서 호스트 이름 유효성 검사만 비활성화해야 하는 경우 --sslAllowInvalidHostnames 를 참조하세요.

ssl.allowInvalidCertificates 설정을 사용할 때 MongoDB는 유효하지 않은 인증서 사용에 대한 경고를 로그합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 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_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로 지정합니다.

중요

버전 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을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

--sslPEMKeyFile <filename>

버전 4.2 이후 사용 중단됨: 대신 --tlsCertificateKeyFile을(를) 사용하세요.

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

이 옵션은 --ssl 옵션을 사용하여 mongod mongos ssl.CAFile 없이 이 활성화된 또는 에 연결할 때 ssl.allowConnectionsWithoutCertificates 필요합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

--sslPEMKeyPassword <value>

버전 4.2 이후 사용 중단됨: 대신 --tlsCertificateKeyFilePassword을(를) 사용하세요.

인증서 키 파일(예: --sslPEMKeyFile)을 해독하기 위한 비밀번호를 지정합니다. 인증서 키 파일이 암호화된 경우에만 --sslPEMKeyPassword 옵션을 사용합니다. 모든 경우에 mongo 는 모든 로깅 및 보고 출력에서 비밀번호를 삭제합니다.

PEM 파일의 개인 키가 암호화되어 있고 --sslPEMKeyPassword 옵션을 지정하지 않은 경우 mongo 에서 암호를 입력하라는 메시지가 표시됩니다. TLS/SSL 인증서 암호를 참조하세요.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 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을 위한 mongodmongos 구성클라이언트를 위한 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을 위한 mongodmongos 구성클라이언트를 위한 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 도구)는 서버 인증서의 유효성 검사를 시도하지 않습니다. 이로 인해 만료된 mongodmongos 인증서는 물론 유효한 mongod 또는 mongos 인스턴스로 가장하는 외부 프로세스에 대한 취약성이 발생합니다. TLS/SSL 인증서에서 호스트 이름 유효성 검사만 비활성화해야 하는 경우 --sslAllowInvalidHostnames 를 참조하세요.

ssl.allowInvalidCertificates 설정을 사용할 때 MongoDB는 유효하지 않은 인증서 사용에 대한 경고를 로그합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 TLS/SSL 구성을 참조하세요.

--sslAllowInvalidHostnames

버전 4.2 이후 사용 중단됨: 대신 --tlsAllowInvalidHostnames을(를) 사용하세요.

TLS/SSL 인증서의 호스트 이름 유효성 검사를 비활성화합니다. 인증서의 호스트 이름이 지정된 호스트 이름과 일치하지 않더라도 mongo가 MongoDB 인스턴스에 연결할 수 있도록 허용합니다.

TLS/SSL 및 MongoDB에 대한 자세한 내용은 TLS/SSL을 위한 mongodmongos 구성클라이언트를 위한 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_0TLS1_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() 생성자를 사용하여 클라이언트 사이드 필드 수준 암호화를 활성화합니다.

~/.dbshell

mongo.dbshell 파일에 명령 기록을 유지합니다.

~/.mongorc.js

mongomongo 를 호출하는 사용자의 홈 디렉토리에서 .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 파일을 쓸 홈 디렉토리의 경로를 지정합니다.

HOMEDRIVE

Windows 시스템에서 HOMEDRIVEmongo.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 명령을 사용하여 셸을 호출합니다. 다른 시나리오에 대해서는 다음 예시를 고려하세요.

인증 및 비표준 포트를 사용하여 원격 호스트의 데이터베이스에 연결하려면 다음 양식을 사용하세요.

mongo --username <user> --password --host <host> --port 28015

또는 다음과 같은 짧은 형식을 고려하세요.

mongo -u <user> -p --host <host> --port 28015

<user><host> 를 상황에 적합한 값으로 바꾸고 필요에 따라 --port 를 대체하거나 생략합니다.

--password 또는 -p 명령줄 옵션에 비밀번호를 지정하지 않으면 mongo 셸에서 비밀번호를 입력하라는 메시지를 표시합니다.

버전 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 레코드에는 replicaSetauthSource 옵션이 포함되어 있습니다.

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 옵션에 지정된 사용자의 비밀번호를 입력하라는 메시지를 자동으로 표시합니다.

버전 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>'

참고

AWS 액세스 키 ID, 보안 액세스 키 또는 세션 토큰에 다음 문자가 포함되어 있는 경우

: / ? # [ ] @

이러한 문자는 퍼센트 인코딩을 사용해 변환해야 합니다.

또는 다음과 같이 --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 ~/.mongorc.js shell 다음 형식을 사용합니다.

mongo --shell --norc alternate-environment.js

명령줄에 입력되는 대신 비밀번호를 입력하라는 메시지를 표시하여 인증을 통해 JavaScript 파일을 실행하려면 다음 양식을 사용하세요.

mongo script-file.js -u <user> -p

다음도 참조하세요.

--eval 옵션을 사용하여 명령줄에서 직접 JavaScript를 실행할 수 있습니다.

예를 들어, 다음 작업은 collection을 쿼리하고 결과를 JSON으로 출력하는 JavaScript 문자열을 평가합니다.

Linux 및 macOS에서는 작은따옴표를 사용해야 합니다(예: ')로 지정하여 다음 형식을 사용하여 JavaScript를 묶습니다.

mongo --eval 'db.collection.find().forEach(printjson)'

Windows에서는 다음 형식을 사용하여 JavaScript를 묶을 때 큰따옴표(예: ")를 사용해야 합니다.

mongo --eval "db.collection.find().forEach(printjson)"

돌아가기

mongos