Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

레거시 셸 mongo shell

이 페이지의 내용

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

참고

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

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

이전 버전에 대한 빠른 링크

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

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

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

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

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

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

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

    플랫폼
    패키지 다운로드

    Windows

    zip 패키지 선택하여 셸 포함된 아카이브를 다운로드 .mongo

    macOS

    tgz 패키지 선택하여 셸 포함된 아카이브를 다운로드 .mongo

    Linux

    tgz 패키지 선택하여 셸 다운로드 mongo .

  4. 아카이브에서 mongo shell 을 파일 시스템의 위치 로 복사합니다.

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

참고

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

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

  • 기본값 설정을 사용하여 명령줄 옵션 없이 mongo shell 을 실행 수 있습니다.

    mongo
  • 호스트, 포트 및 기타 연결 옵션을 지정하는 연결 string 을 사용하여 을 실행할 수 있습니다.mongo shell 예를 들어 다음에는 tls 가 포함됩니다.

    mongo "mongodb://mongodb0.example.com:27017/testdb?tls=true"

    tls 옵션은 MongoDB 4.2 부터 사용할 수 있습니다. 이전 버전에서는 ssl 옵션을 사용합니다.

    mongo shell 을 복제본 세트 에 연결하려면 연결 string 에 복제본 세트 멤버와 이름을 지정할 수 있습니다.

    mongo "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"

    연결 string 옵션에 대한 자세한 내용은 연결 문자열을 참조하세요 .

  • 다양한 명령줄 옵션을 사용하여 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 옵션 또는 연결 string 에 지정됨)이 mongod 에서 제시한 인증서의 SAN (또는 SAN 이(가) 없는 경우 CN)과 일치하는지 확인합니다. mongos. SAN 이 있는 경우 mongoshCN 과 일치하지 않습니다. 호스트 이름이 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 연결하는 Amazon Web Services 경우 ID 이 필드 또는 연결 에 액세스 string 키 를 지정합니다. 또는 이 값을 환경 변수 AWS_ACCESS_KEY_ID 로 제공할 수도 있습니다. IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기를 참조하세요.Amazon Web Services

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

인증을 사용하는 MongoDB database 에 인증 하는 데 사용할 비밀번호를 지정합니다. --username--authenticationDatabase 옵션과 함께 사용합니다. mongo 가 비밀번호를 입력하라는 메시지를 표시하도록 하려면 마지막 옵션으로 --password 옵션을 입력하고 인수를 생략합니다.

MongoDB Atlas 을 사용하여 클러스터 에 MONGODB-AWS authentication mechanism 연결하는 경우 Amazon Web Services 이 필드 또는 연결 string 에 시크릿 액세스 키를 지정합니다. 또는 이 값을 환경 변수 AWS_SECRET_ACCESS_KEY 로 제공할 수도 있습니다. IAM 자격 증명을 사용하여 MongoDB Atlas 클러스터에 연결하기를 참조하세요.Amazon Web Services

--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 shell 과 다음 간의 통신을 위해 네트워크 압축을 활성화합니다.

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

  • 스내피

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

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

중요

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

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

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

--ipv6

IPv6 지원 활성화합니다. mongo 는 기본값 IPv6 을(를) 비활성화합니다.

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

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

<db name>

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

mongo admin

위의 명령은 을 mongo shell 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

JavaScript javascriptWithScope (*Deprecated*) 유형의 JavaScript 필드를 의 함수에 자동으로 마셜링할 수 있습니다.mongo shell

--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로 변환하는 것입니다. 다음 예시 는 shell 내의 기본값 동작을 보여줍니다.

> 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 돌아가려면 옵션을 사용합니다.shell

--authenticationDatabase <dbname>

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

--authenticationDatabase 에 값을 지정하지 않으면 mongo 연결 string 에 지정된 데이터베이스 를 사용합니다.

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 shell 이 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 shell TLS/SSL 인증서와 키가 모두 포함된 .pem 파일 을 지정합니다. 상대 경로 또는 절대 경로를 사용하여 .pem 파일 의 이름을 지정 파일 .

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

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

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일 이내에 만료되는 경우 연결 시 경고를 기록합니다.

--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 shell 의 세션에 대한 기본값 으로 활성화합니다.

세션에 대한 자세한 내용은 클라이언트 세션 및 인과관계 일관성 보장을 참조하세요.

--awsAccessKeyId <string>

Amazon Web Services 액세스 List Read 키 Amazon Web Services KMS (KMS)에 대한 및 권한을 가진 IAM 사용자와 연결됩니다. mongo shell 은 지정된 --awsAccessKeyId 를 사용하여 KMS 에 액세스 합니다.

{ 9} 세션에 대해 클라이언트 측 필드 --awsAccessKeyId 레벨 암호화 를 활성화하려면 이(가) mongo shell 필요합니다. --awsAccessKeyId 에는 다음 명령줄 옵션이 모두 필요합니다.

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

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

--awsSecretAccessKey <string>

Amazon Web Services 비밀 지정된 에 --awsAccessKeyId 연결됩니다.

{ 9} 세션에 대해 클라이언트 측 필드 --awsSecretAccessKey 레벨 암호화 를 활성화하려면 이(가) mongo shell 필요합니다. --awsSecretAccessKey 에는 다음 명령줄 옵션이 모두 필요합니다.

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

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

--awsSessionToken <string>

Amazon Web Services 세션 토큰 --awsAccessKeyId지정된 에 연결됩니다.

{ 9} 세션에 대해 클라이언트 측 필드 --awsSessionToken 레벨 암호화 를 활성화하려면 이(가) mongo shell 필요합니다. --awsSessionToken 에는 다음 명령줄 옵션이 모두 필요합니다.

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

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

--keyVaultNamespace <string>

클라이언트 측 필드 레벨 암호화 를 위한 키 모음으로 사용되는 컬렉션 의 전체 네임스페이스 (<database>.<collection>)입니다. 클라이언트 사이드 필드 수준 암호화 를 활성화하려면 --keyVaultNamespace 이(가) 필요합니다. mongo shell 세션의 경우. 지정된 네임스페이스 가 존재하지 않는 경우 mongo 가 이를 생성합니다.

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

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

~/.dbshell

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

참고

mongoauthenticatedb.createUser()를 포함하여 기록 파일 에 인증 과 관련된 상호 작용을 기록 하지 않습니다.

~/.mongorc.js

mongomongo 를 호출하는 사용자의 홈 디렉토리 에서 .mongorc.js 파일 을 읽습니다. 파일 에서 사용자는 변수를 정의하거나, mongo shell 프롬프트를 사용자 지정하거나, shell 을 실행할 때마다 업데이트 하려는 정보를 업데이트할 수 있습니다. shell 을 JavaScript 사용하여 명령줄 에서 를 사용하거나 에 .js 파일 mongo mongo --eval 을 지정하여 파일 또는 표현식mongo 을 평가하는 경우,.mongorc.js 는 JavaScript 처리 가 완료된 후 파일 을 읽습니다.

.mongorc.js 읽기를 비활성화하려면 --norc 옵션을 지정합니다.

/etc/mongorc.js

mongo shell 이 시작 시 평가하는 글로벌 mongorc.js 파일 입니다. 사용자의 HOME 디렉토리 에 .mongorc.js 파일 이 있는 경우 mongo shell 은 사용자의 .mongorc.js 파일 을 평가 하기 전에 글로벌 /etc/mongorc.js 파일 을 평가합니다.

/etc/mongorc.js shell 을 실행 하는 사용자에 대한 읽기 권한이 있어야 합니다. 에 대한 --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 shell 명령과 함께 사용할 편집기의 경로를 지정합니다. JavaScript 변수 EDITOR 이(가) EDITOR 값을 재정의합니다.

HOME

mongo.mongorc.js 파일 을 읽고 .dbshell 파일 을 쓰기 (write) 홈 디렉토리 의 경로를 지정합니다.

HOMEDRIVE

Windows 시스템에서 HOMEDRIVEmongo.mongorc.js 파일 을 읽고 .dbshell 파일 을 쓰기 (write) 디렉토리 경로를 지정합니다.

HOMEPATH

mongo.mongorc.js 파일을 읽고 .dbshell 파일을 쓸 홈 디렉토리의 Windows 경로를 지정합니다.

mongo shell 은 다음 키보드 단축키를 지원합니다: [1]

키 바인딩
기능

위쪽 화살표

기록에서 이전 명령 조회

아래쪽 화살표

기록에서 다음 명령 조회

줄의 시작 부분으로 고 (Go)

End

줄의 끝으로 Go

Tab

자동 완성 메서드/명령

왼쪽 화살표

한 문자 뒤로 고 (Go)

오른쪽 화살표

한 문자 앞으로 고 (Go)

Ctrl- 왼쪽 화살표

한 단어 뒤로 고 (Go)

Ctrl-우측 화살표

한 단어 앞으로 고 (Go)

메타 왼쪽 화살표

한 단어 뒤로 고 (Go)

메타 오른쪽 화살표

한 단어 앞으로 고 (Go)

Ctrl-A

줄의 시작 부분으로 고 (Go)

Ctrl-B

한 문자 뒤로 고 (Go)

Ctrl-C

mongo 종료

Ctrl-D

문자 삭제 (또는 셸 mongo 종료)

Ctrl-E

줄 끝으로 고 (Go)

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 단어 정리 수행

Ctrl-Y

양크

Ctrl-Z

일시 중단(Linux에서 작업 제어 작동)

Ctrl-H

문자 역방향 삭제

Ctrl-I

완료(탭과 동일)

Meta-B

한 단어 뒤로 고 (Go)

메타-C

단어 대문자 사용

메타-D

킬 워드

Meta-F

한 단어 앞으로 고 (Go)

Meta-L

단어를 소문자로 변경

Meta-U

단어를 대문자로 변경

메타-Y

양키팝

Meta-Backspace

단어 역방향 삭제

Meta-<

명령 기록에서 첫 번째 명령 조회

Meta->

명령 기록에서 마지막 명령 조회

[1] MongoDB는 다중 키 바인딩을 지원합니다. 2.0 이후 mongo 에는 기본 emacs 키 바인딩에 대한 지원이 포함됩니다.

일반적으로 사용자는 shell 시스템 mongo 프롬프트에서 명령을 사용하여 을 호출합니다. 다른 시나리오에 대해서는 다음 예시를 고려하세요.

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

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

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

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

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

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

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

SRV 연결 형식 --host 을 사용하여 string 설명된 mongo shell 복제본 세트 에 연결하려면 옵션을 사용하여 에 대한 연결 을 지정합니다. 다음 예시 에서 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 shell 을 복제본 세트 에 연결합니다.

mongo --host "mongodb+srv://server.example.com/?username=allison"

mongo shell 은 username 옵션에 지정된 사용자의 비밀번호를 입력하라는 메시지를 자동으로 표시합니다.

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

Amazon Web Services IAM 자격 증명 을 통해 인증 을 지원 하도록 MongoDB Atlas 구성된 클러스터 에 연결하려면 stringmongo shell 다음과 유사한 연결 을 제공합니다.

mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'

Atlas Amazon Web Services 이러한 방식으로 IAM 자격 증명 을 사용하여 MONGODB-AWS authentication mechanism$external authSource 연결하면 이 예시 와 같이 및 가 사용됩니다.

Amazon Web Services 세션 토큰 을 사용하는 경우 AWS_SESSION_TOKEN 다음과 authMechanismProperties 같이 string 연결 의 값과 함께 제공합니다.

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>

명령줄 매개변수로 제공되는 경우 이러한 세 가지 옵션에는 퍼센트 인코딩이 필요하지 않습니다.

Amazon Web Services 표준 IAM 환경 변수 를 사용하여 플랫폼에서 이러한 자격 증명 을 설정하다 수도 있습니다. . mongo shell 은 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 를 실행할 수 있습니다.

예를 예시, 다음 작업은 컬렉션 을 JavaScript string 쿼리하고 결과를 으로 출력하는 을 JSON 평가합니다.

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

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

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

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

돌아가기

mongos