Docs Menu
Docs Home
/
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>" )
キー
タイプ
default
説明
displayBatchSize
integer
20
カーソルの反復ごとに表示される項目の数
enableTelemetry
ブール値
true
匿名化された追跡データと診断データの MongoDB への送信を有効にします。
editor
string
null
mongoshコンソール内で使用するエディターを指定します。 設定されている場合は、 EDITOR環境変数を上書きします。
forceDisableTelemetry
ブール値
false
グローバル構成ファイルでのみ利用可能です。 true の場合、ユーザーは テレメトリ を手動で有効にすることはできません。
historyLength
integer
1000
mongosh REPL の履歴ファイルに保存するアイテムの数。
inspectCompact
整数またはブール値
3

mongoshが単一行に出力する内部要素のレベル。 短い配列要素も 1 行にまとめられています。

falseに設定すると、 mongoshは各フィールドを別個の行に出力します。

inspectDepth
整数または Infinity
6
オブジェクトが出力される深度。 inspectDepthInfinity( JavaScriptオブジェクト)に設定すると、ネストされたすべてのオブジェクトが完全な深度に出力されます。
redactHistory
string
remove

shell 履歴に記録される情報を制御します。 次のいずれかである必要があります。

  • keep: すべての履歴を保持します。

  • remove: 機密情報を含む行は削除します。

  • remove-redact: 機密情報を編集します。

showStackTraces
ブール値
false
エラー メッセージとともにスタック トレースの表示を制御します。
snippetAutoload
ブール値
true
trueの場合、起動時にインストールされたスニペットを自動的に読み込みます。
snippetIndexSourceURLs
string
スニペットレジストリにリンクする URL のセミコロン区切りリスト。
snippetRegistryURL
string
スニペット をインストールする npm クライアントが使用するmongosh npm レジストリ。

mongosh は、特定の種類の機密情報に通常対応するパターンを一致させるために「ベストエフォート」による試行を行います。

以下に一致するパターンがあります。

  • 証明書と鍵

  • メールアドレス

  • 一般的なユーザー ディレクトリ

  • HTTP(s) URL

  • IP アドレス

  • MongoDB 接続文字列

connect()などの特定の操作は、本質的に機密性が高いと見なされます。 redactHistoryremoveまたはremove-redactに設定されている場合、これらの操作を含む行はコマンドライン履歴から削除されます。

find()などの他の操作では、メールアドレスなどの機密情報が含まれる場合があります。 shell 履歴では、 redactHistoryremove-redactに設定されていない限り、これらの行は入力されたまま保持されます。

config API で指定される設定:

  • 構成ファイルで指定された設定を上書きします。

  • 再起動後も永続的。

inspectDepth設定を20に設定する次の構成ファイルを検討します。

mongosh:
inspectDepth: 20

mongosh セッション中に次のコマンドを実行して、inspectDepth10 に設定します。

config.set( "inspectDepth", 10 )

の値はinspectDepth 1010になり、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)

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

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" } )

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>" )を使用します。

  1. historyLength設定の値を2000に変更します。

    config.set("historyLength", 2000)
  2. historyLengthの更新された値を確認します。

    config.get("historyLength")
  3. historyLength設定をデフォルト値の1000にリセットします。

    config.reset("historyLength")
  4. historyLengthの更新された値を確認します。

    config.get("historyLength")

戻る

設定を構成する

項目一覧