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>" )
지원되는 property
매개변수
키 | 유형 | 기본값 | 설명 |
---|---|---|---|
displayBatchSize | integer | 20 | 커서 반복당 표시되는 항목 수 |
enableTelemetry | 부울 | true | MongoDB에 익명화된 추적 및 진단 데이터를 보낼 수 있습니다. |
editor | 문자열 | null | mongosh 콘솔 내에서 사용할 편집기를 지정합니다. 환경 변수가 설정되어 있으면 EDITOR 환경 변수를 재정의합니다. |
forceDisableTelemetry | 부울 | false | 글로벌 구성 파일에서만 사용할 수 있습니다. true인 경우 사용자는 원격 측정을 수동으로 활성화할 수 없습니다. |
historyLength | integer | 1000 | mongosh REPL의 히스토리 파일에 저장할 항목 수입니다. |
inspectCompact | 정수 또는 부울 | 3 | |
inspectDepth | 정수 또는 무한대 | 6 | 객체가 출력되는 깊이입니다. inspectDepth 를 Infinity (javascript 객체)로 설정하면 중첩된 모든 객체가 전체 깊이에 출력됩니다. |
redactHistory | 문자열 | remove | 셸 기록에 어떤 정보를 기록할지 제어합니다. 다음 중 하나여야 합니다.
|
showStackTraces | 부울 | false | 오류 메시지와 함께 스택 추적의 표시를 제어합니다. |
snippetAutoload | 부울 | true | true 인 경우 시작 시 설치된 스니펫을 자동으로 로드합니다. |
snippetIndexSourceURLs | 문자열 | 스니펫 레지스트리에 연결되는 세미콜론으로 구분된 URL 목록입니다. | |
snippetRegistryURL | 문자열 |
행동
기록에서 민감한 정보 제거 또는 삭제
mongosh
는 일반적으로 특정 유형의 민감한 정보에 해당하는 패턴을 일치시키려는 '최선의 노력'을 시도합니다.
일치하는 패턴이 있습니다.
인증서 및 키
이메일 주소
일반 사용자 디렉토리
HTTP(들) URL
IP 주소
MongoDB 연결 문자열
connect()
과 같은 특정 작업은 본질적으로 민감한 것으로 간주됩니다. redactHistory
를 remove
또는 remove-redact
로 설정하다 하면 이러한 연산이 있는 줄이 명령줄 기록에서 제거됩니다.
find()
같은 기타 작업에는 이메일 주소와 같은 민감한 정보가 포함되는 경우가 있습니다. 셸 기록에는 redactHistory
가 remove-redact
로 설정되지 않는 한 이러한 줄이 입력된 그대로 유지됩니다.
구성 파일을 사용한 동작
다음은 config
API로 지정된 설정입니다.
구성 파일에 지정된 설정을 재정의합니다.
재시작 시에도 유지됩니다.
예시
inspectDepth
설정을 20
로 설정하는 다음 구성 파일 을 고려하세요.
mongosh: inspectDepth: 20
mongosh
세션 중에 다음 명령을 실행하여 inspectDepth
를 10
으로 설정합니다.
config.set( "inspectDepth", 10 )
의 값은 inspectDepth
10
10
이 mongosh
되며 을 다시 시작하더라도 상태로 유지됩니다.
예시
커서가 반환한 항목 수 업데이트
대용량 문서가 많은 컬렉션 을 보는 것이 좋습니다. 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)
config
외부에서 API 호출 mongosh
--eval
을 mongosh
와 함께 사용하여 명령줄에서 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
민감한 정보 삭제
redactHistory
가 remove-redact
또는 remove
로 설정되었을 때 리콜된 기록을 비교합니다.
redactHistory
을 remove-redact
모드 하고 이메일 주소 가 포함된 쿼리 를 입력합니다.
config.set( "redactHistory", "remove-redact" ) db.contacts.find( {"email": "customer@clients.com" } )
마지막 명령을 재생하기 위해 up arrow
를 누르면 이메일 주소가 수정됩니다.
db.contacts.find( {"email": "<email>" } ) // Redacted
redactHistory
을 remove
모드 하고 이메일 주소 가 포함된 쿼리 를 입력합니다.
config.set( "redactHistory", "remove" ) db.contacts.find( {"email": "customer@clients.com" } )
이메일 주소가 존재하는 마지막 명령을 재생하기 위해 up arrow
를 누를 때.
db.contacts.find( {"email": "customer@clients.com" } )
shell 기록 은 변경 사항을 반영합니다. (이 경우 가장 최근의 입력이 먼저 저장됩니다.)
db.contacts.find( {"email": "customer@clients.com" } ) config.set( "redactHistory", "remove" ) db.contacts.find( {"email": "<email>" } ) config.set( "redactHistory", "remove-redact" )
구성 설정을 기본값으로 재설정
구성 설정을 수정한 후 기본값 으로 재설정하려면 config.reset( "<property>" )
를 사용합니다.
historyLength
설정 값을2000
으로 변경합니다.config.set("historyLength", 2000) historyLength
의 업데이트된 값을 확인합니다.config.get("historyLength") historyLength
설정을 기본값 인1000
로 재설정합니다.config.reset("historyLength") historyLength
의 업데이트된 값을 확인합니다.config.get("historyLength")