문서 메뉴
문서 홈
/
MongoDB Shell
/ /

API를 사용하여 설정 구성

이 페이지의 내용

  • 구문
  • 행동
  • 예제

config API는 mongosh 구성을 검사하고 업데이트하는 메서드를 제공합니다. config API를 사용하여 업데이트한 내용은 세션 간에도 유지됩니다.

참고

config API는 mongosh 명령줄 인터페이스 내에서 사용할 수 있습니다. 임베디드 Compass shell 에는 영향을 주지 않습니다.

현재 mongosh 구성을 인쇄합니다.

config

<property>의 현재 값을 반환합니다.

config.get( "<property>" )

<property>의 현재 설정을 <value>로 변경합니다.

config.set( "<property>", <value> )

<property> 를 기본값으로 재설정합니다.

config.reset( "<property>" )
유형
기본값
설명
displayBatchSize
integer
20
커서 반복당 표시되는 항목 수
enableTelemetry
부울
true
MongoDB에 익명화된 추적 및 진단 데이터를 보낼 수 있습니다.
editor
문자열
null
mongosh 콘솔 내에서 사용할 편집기를 지정합니다. 환경 변수가 설정되어 있으면 EDITOR 환경 변수를 재정의합니다.
forceDisableTelemetry
부울
false
글로벌 구성 파일에서만 사용할 수 있습니다. true인 경우 사용자는 원격 측정을 수동으로 활성화할 수 없습니다.
historyLength
integer
1000
mongosh REPL의 히스토리 파일에 저장할 항목 수입니다.
inspectCompact
정수 또는 부울
3

mongosh가 한 줄에 출력하는 내부 요소의 레벨입니다. 짧은 배열 요소도 한 줄로 그룹화됩니다.

false로 설정하면 mongosh는 각 필드를 자체 행에 출력합니다.

inspectDepth
정수 또는 무한대
6
객체가 출력되는 깊이입니다. inspectDepthInfinity(javascript 객체)로 설정하면 중첩된 모든 객체가 전체 깊이에 출력됩니다.
redactHistory
문자열
remove

셸 기록에 어떤 정보를 기록할지 제어합니다. 다음 중 하나여야 합니다.

  • keep: 모든 기록을 유지합니다.

  • remove: 민감한 정보가 포함된 줄을 제거합니다.

  • remove-redact: 민감한 정보를 삭제합니다.

showStackTraces
부울
false
오류 메시지와 함께 스택 추적의 표시를 제어합니다.
snippetAutoload
부울
true
true인 경우 시작 시 설치된 스니펫을 자동으로 로드합니다.
snippetIndexSourceURLs
문자열
스니펫 레지스트리에 연결되는 세미콜론으로 구분된 URL 목록입니다.
snippetRegistryURL
문자열
스니펫을 설치하는 mongosh npm 클라이언트에서 사용하는 npm 레지스트리입니다.

mongosh 는 일반적으로 특정 유형의 민감한 정보에 해당하는 패턴을 일치시키려는 '최선의 노력'을 시도합니다.

일치하는 패턴이 있습니다.

  • 인증서 및 키

  • 이메일 주소

  • 일반 사용자 디렉토리

  • HTTP(s) URL

  • IP 주소

  • MongoDB 연결 문자열

connect() 과 같은 특정 작업은 본질적으로 민감한 것으로 간주됩니다. redactHistoryremove 또는 remove-redact 로 설정하면 이러한 연산이 있는 줄이 명령줄 기록에서 제거됩니다.

find() 같은 기타 작업에는 이메일 주소와 같은 민감한 정보가 포함되는 경우가 있습니다. 셸 기록에는 redactHistoryremove-redact로 설정되지 않는 한 이러한 줄이 입력된 그대로 유지됩니다.

다음은 config API로 지정된 설정입니다.

  • 구성 파일에 지정된 설정을 재정의합니다.

  • 재시작 시에도 유지됩니다.

예제

inspectDepth 설정을 20 로 설정하는 다음 구성 파일을 고려하세요.

mongosh:
inspectDepth: 20

mongosh 세션 중에 다음 명령을 실행하여 inspectDepth10으로 설정합니다.

config.set( "inspectDepth", 10 )

의 값은 inspectDepth 10 10mongosh 되며 을 다시 시작하더라도 상태로 유지됩니다.

대용량 문서가 많은 컬렉션을 보는 것이 좋습니다. batchSize 를 업데이트하여 커서가 반환하는 항목 수를 제한할 수 있습니다.

config.set("displayBatchSize", 3)

향후 db.collection.find() 작업은 커서 반복당 문서 3개만 반환합니다.

스택 추적을 사용 설정하면 더 자세한 오류 보고를 확인할 수 있습니다.

config.set("showStackTraces", true)

출력은 다음과 같이 달라집니다.

// showStackTraces set to 'false'
Enterprise> db.orders.find( {}, { $thisWontWork: 1 } )
MongoError: FieldPath field names may not start with '$'.
// showStackTraces set to 'true'
Enterprise> db.orders.find( {}, { $thisWontWork: 1 } )
Uncaught:
MongoError: FieldPath field names may not start with '$'.
at MessageStream.messageHandler (/usr/bin/mongosh:58878:20)
at MessageStream.emit (events.js:315:20)
at MessageStream.EventEmitter.emit (domain.js:548:15)
at processIncomingData (/usr/bin/mongosh:57954:12)
at MessageStream._write (/usr/bin/mongosh:57850:5)
at writeOrBuffer (_stream_writable.js:352:12)
at MessageStream.Writable.write (_stream_writable.js:303:10)
at Socket.ondata (_stream_readable.js:719:22)
at Socket.emit (events.js:315:20)
at Socket.EventEmitter.emit (domain.js:548:15)

--evalmongosh와 함께 사용하여 명령줄에서 config API를 호출할 수 있습니다. 이 경우 --nodb 옵션은 mongosh MongoDB database에 연결하지 않고 업데이트된다는 의미입니다.

중요

--eval 표현식과 config 속성에는 서로 다른 따옴표를 사용해야 합니다. 즉 하나에 작은따옴표를 사용했으면 다른 하나에는 큰따옴표를 사용해야 합니다.

mongosh --nodb --eval 'config.set("enableTelemetry", true)'

mongosh API 호출 결과와 함께 추가 정보를 반환합니다.

Current Mongosh Log ID: 609583b730e14918fa0d363f
Using MongoDB: undefined
Using Mongosh Beta: 0.12.1
For mongosh info see: https://www.mongodb.com/ko-kr/docs/mongodb-shell/
Setting "enableTelemetry" has been changed

redactHistoryremove-redact 또는 remove로 설정되었을 때 리콜된 기록을 비교합니다.

redactHistoryremove-redact 모드로 설정하고 이메일 주소가 포함된 쿼리를 입력합니다.

config.set( "redactHistory", "remove-redact" )
db.contacts.find( {"email": "customer@clients.com" } )

마지막 명령을 재생하기 위해 up arrow를 누르면 이메일 주소가 수정됩니다.

db.contacts.find( {"email": "<email>" } ) // Redacted

redactHistoryremove 모드로 설정하고 이메일 주소가 포함된 쿼리를 입력합니다.

config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "customer@clients.com" } )

이메일 주소가 존재하는 마지막 명령을 재생하기 위해 up arrow를 누를 때.

db.contacts.find( {"email": "customer@clients.com" } )

셸 기록 은 변경 사항을 반영합니다. (이 경우 가장 최근의 입력이 먼저 저장됩니다.)

db.contacts.find( {"email": "customer@clients.com" } )
config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "<email>" } )
config.set( "redactHistory", "remove-redact" )

구성 설정을 수정한 후 기본값으로 재설정하려면 config.reset( "<property>" ) 를 사용합니다.

  1. historyLength 설정 값을 2000으로 변경합니다.

    config.set("historyLength", 2000)
  2. historyLength 의 업데이트된 값을 확인합니다.

    config.get("historyLength")
  3. historyLength 설정을 기본값인 1000 로 재설정합니다.

    config.reset("historyLength")
  4. historyLength 의 업데이트된 값을 확인합니다.

    config.get("historyLength")
← 설정 구성

이 페이지의 내용