Docs Menu
Docs Home
/
mongosh
/ /

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
説明

disableLogging

ブール値

false

MongoDB Shell がログエントリを書込むかどうかを指定します。

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オブジェクト)に設定すると、ネストされたすべてのオブジェクトが完全な深度に出力されます。

logCompressionEnabled

ブール値

false

MongoDB Shell がログファイルを圧縮するかどうかを指定します。この値が true の場合、 MongoDB Shell は gzip を使用してログを圧縮します。「 ログ圧縮の有効化 」を参照してください。

logLocation

string

オペレーティング システムによって異なります。「 shell ログの表示 」を参照してください。

MongoDB Shell がログファイルを書き込むディレクトリ。絶対ファイルパスを指定します。「 ログファイルの指定 」を参照してください。

logMaxFileCount

整数または Infinity

100

MongoDB Shell が保持するログファイルの最大数。MongoDB Shell がログファイルの最大数に達すると、カウントがしきい値を下回るまで、最も古いログファイルの削除を開始します。「 最大ログファイル数の変更 」を参照してください。

logRetentionDays

整数または Infinity

30

MongoDB Shell のログファイルが保持される日数。この値が Infinity に設定されている場合、ログファイルは経過時間に基づいて削除されません。ログストレージが大きくなりすぎるのを防ぐには、常に少なくとも 1 つのログ保持基準を指定します。「 ログの保持 」を参照してください。

logRetentionGB

浮動小数、または 無限大

設定解除

MongoDB Shell ログに使用されるスペースの最大量(ギガバイト単位)。MongoDB Shell ログの合計サイズがこの値を超えると、ログファイルは最も古いログから削除されます。

この値を Infinity に設定すると、ストレージサイズに基づいてログファイルは削除されません。ログストレージが大きくなりすぎるのを防ぐには、常に少なくとも 1 つのログ保持基準を指定します。「 ログの保持 」を参照してください。

redactHistory

string

remove

mongosh コマンド履歴に記録される情報を制御します。 シェル内であれば、アップキーとダウンキーまたは Ctrl+ Rを使用して mongosh コマンドの履歴にアクセスできます。

次のいずれかの値でなければなりません。

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

  • remove: 履歴から機密コマンドを含む行を削除します。例、remove は db.auth() または connect() への呼び出しを削除します。

  • remove-redact: 機密コマンドを含む行を削除し、ファイルパス、メールアドレス、URL などの特定の文字列を他の履歴行から削除します。

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": "[email protected]" } )

up arrowを押して最後のコマンドを再生すると、メールアドレスは編集されます。

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

redactHistoryremoveモードに設定し、メールアドレスを含むクエリを入力します。

config.set( "redactHistory", "remove" )
db.contacts.find( {"email": "[email protected]" } )

up arrow を押して最後のコマンドを再生すると、メール アドレスが表示されます。

db.contacts.find( {"email": "[email protected]" } )

shell 履歴には変更が反映されます。 (これにより、最新の入力が最初に保存されることに注意してください)。

db.contacts.find( {"email": "[email protected]" } )
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")

戻る

設定を構成する

項目一覧

  • 構文
  • 動作