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
パラメータ
キー | タイプ | default | 説明 |
---|---|---|---|
displayBatchSize | integer | 20 | カーソルの反復ごとに表示される項目の数 |
enableTelemetry | ブール値 | true | 匿名化された追跡データと診断データの MongoDB への送信を有効にします。 |
editor | string | null | mongosh コンソール内で使用するエディターを指定します。 設定されている場合は、 EDITOR 環境変数を上書きします。 |
forceDisableTelemetry | ブール値 | false | グローバル構成ファイルでのみ利用可能です。 true の場合、ユーザーは テレメトリ を手動で有効にすることはできません。 |
historyLength | integer | 1000 | mongosh REPL の履歴ファイルに保存するアイテムの数。 |
inspectCompact | 整数またはブール値 | 3 | |
inspectDepth | 整数または Infinity | 6 | オブジェクトが出力される深度。 inspectDepth を Infinity ( JavaScriptオブジェクト)に設定すると、ネストされたすべてのオブジェクトが完全な深度に出力されます。 |
redactHistory | string | remove | shell 履歴に記録される情報を制御します。 次のいずれかである必要があります。
|
showStackTraces | ブール値 | false | エラー メッセージとともにスタック トレースの表示を制御します。 |
snippetAutoload | ブール値 | true | true の場合、起動時にインストールされたスニペットを自動的に読み込みます。 |
snippetIndexSourceURLs | string | スニペットレジストリにリンクする URL のセミコロン区切りリスト。 | |
snippetRegistryURL | string | スニペット をインストールする npm クライアントが使用する mongosh npm レジストリ。 |
動作
履歴からの機密情報の削除または編集
mongosh
は、特定の種類の機密情報に通常対応するパターンを一致させるために「ベストエフォート」による試行を行います。
以下に一致するパターンがあります。
証明書と鍵
メールアドレス
一般的なユーザー ディレクトリ
HTTP(s) URL
IP アドレス
MongoDB 接続文字列
connect()
などの特定の操作は、本質的に機密性が高いと見なされます。 redactHistory
がremove
またはremove-redact
に設定されている場合、これらの操作を含む行はコマンドライン履歴から削除されます。
find()
などの他の操作では、メールアドレスなどの機密情報が含まれる場合があります。 shell 履歴では、 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
mongosh
と--eval
を使用して、コマンドラインから config
API を呼び出すことができます。この場合、--nodb
オプションを使用すると、mongosh
が MongoDB データベースに接続せずに更新されます。
重要
--eval
式とconfig
プロパティには異なる引用符を使用する必要があります。 つまり、一方の は一double引用符で、もう一方の場合は二重引用符 になります。
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/ja-jp/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")