AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

オプション

MongoDB Shell のさまざまな側面を表示、制御するには、次のオプションを使用します。

--build-info

mongosh のビルドとドライバーの依存関係に関する情報を含む JSON 形式のドキュメントを返します。

例: ビルド情報の表示

ターミナルから次のコマンドを実行すると、mongosh バイナリのビルド情報とドライバーの依存関係を確認できます。

mongosh --build-info

このコマンドは、次の JSON 形式のドキュメントを返します。

{
version: '1.10.1',
distributionKind: 'packaged',
buildArch: 'x64',
buildPlatform: 'linux',
buildTarget: 'unknown',
buildTime: '2023-06-21T09:49:37.225Z',
gitVersion: '05ad91b4dd40382a13f27abe1ae8c3f9f52a38f7',
nodeVersion: 'v16.20.1',
opensslVersion: '3.1.1',
sharedOpenssl: true,
runtimeArch: 'x64',
runtimePlatform: 'darwin',
deps: {
nodeDriverVersion: '5.6.0'
}
}
--eval <javascript>

JavaScript の式を評価します。単一の --eval 引数を使用することも、複数の --eval 引数を一緒に使用することもできます。

mongosh は --eval 引数を評価した後、その結果をコマンドラインに出力します。複数の --eval ステートメントを使用する場合、mongosh は最後の --eval の結果のみを出力します。

--json フラグを --evalと共に使用すると、拡張 JSON 形式で mongosh 結果を返すことができます。mongosh は --json=canonical と --json=relaxed の両方のモードをサポートしています。モードを省略すると、mongosh はデフォルトで canonical モードになります。--json フラグは、--shell と相互に排他的です。

例: 出力の形式設定

自動解析に適した出力を得るには、EJSON.stringify() を使用します。

mongosh --quiet --host rs0/centos1104 --port 27500 \
--eval "EJSON.stringify(rs.status().members.map( \
m => ({'id':m._id, 'name':m.name, 'stateStr':m.stateStr})));" \
| jq

jq で解析すると、出力は次のようになります。

[
{
"id": 0,
"name": "centos1104:27500",
"stateStr": "PRIMARY"
},
{
"id": 1,
"name": "centos1104:27502",
"stateStr": "SECONDARY"
},
{
"id": 2,
"name": "centos1104:27503",
"stateStr": "SECONDARY"
}
]

注意

EJSON には形式オプションが組み込まれているため、jq のようなパーサーが不要になる場合があります。たとえば、以下のコードは、上記と同じ形式の出力を生成します。

mongosh --quiet --host rs0/centos1104 --port 27500 \
--eval "EJSON.stringify( rs.status().members.map( \
({ _id, name, stateStr }) => ({ _id, name, stateStr })), null, 2);"

例: 複数の --eval 引数

moviesDatabase 内のコレクションのリストを取得するには、複数の --eval ステートメントを使用します。

mongosh --quiet \
--eval 'use moviesDatabase' \
--eval 'show collections' \
mongodb://localhost/

例: --json オプション

複数の --eval ステートメントを使用して、コレクションに関する統計を拡張 JSON 形式で返すには、次のようにします。

mongosh --quiet --json=relaxed \
--eval 'use <database-name>' \
--eval 'db.<collection>.stats()' \
mongodb://localhost/
--file, -f <javascript>

MongoDB Shell コンソールに入らずに、コマンド ラインからスクリプトを実行します。

詳細と例については、「コマンドラインからのスクリプトの実行」を参照してください。

--help, -h

MongoDB Shell のオプションと使用法に関する情報を返します。

--nodb

shell がデータベース インスタンスに接続できないようにします。

--no-quiet

--quiet非インタラクティブシェルセッションのデフォルトの オプションモードを無効にします。これを指定すると、mongosh はスタートアップ中にすべてのメッセージを表示します。

--norc

スタートアップ時に shell が ~/.mongoshrc.js を確認して評価しないようにします。

--norc また、snippet install コマンドでインストールしたスニペットが shell にロードされないようにします。 代わりに、snippet load-all コマンドでスニペットをロードできます。 詳細については、スニペットコマンドを参照してください。

--quiet

スタートアップ時にすべてのメッセージ(ウェルカムメッセージやスタートアップ警告など)をスキップし、プロンプトに直接移動します。

非インタラクティブシェルセッションの場合、 MongoDB はデフォルトで--quiet を有効にします。この動作は--no-quiet を使用して無効にできます。

--skipStartupWarnings

セッションの作成時にmongosh がサーバースタートアップ警告を表示しないようにします。スタートアップメッセージをすべて表示しないようにするには、--quiet オプションを使用します。

--shell

シェルインターフェイスを有効にします。mongosh コマンドを呼び出してJavaScriptファイルを引数として指定するか、--eval を使用してコマンドラインでJavaScriptを指定すると、ファイルの実行が完了した後に--shell オプションによってユーザーにシェルプロンプトが表示されます。--shell フラグは--json と相互に排他的です。

--verbose

接続プロセス中とコマンド実行中の shell 出力の冗長度を高めます。

--version

MongoDB Shell のリリース番号を返します。

--apiVersion <version number>

apiVersion "1"を指定します。現在サポートされている値は のみです。

--apiStrict

アプリケーションが Stable API の外部のコマンドまたは動作を使用する場合、サーバーが APIStrictError で応答することを指定します。

--apiStrictを指定する場合は、--apiVersion も指定する必要があります。

--apiDeprecationErrors

指定された で非推奨のコマンドまたは動作をアプリケーションが使用する場合、サーバーがAPIDeprecationErrorapiVersion で応答することを指定します。

--apiDeprecationErrorsを指定する場合は、--apiVersion も指定する必要があります。

--host <hostname>

mongod または mongos が実行中のホストマシンの名前を指定します。これが指定されていない場合、MongoDB Shell は localhost で実行中の MongoDB プロセスへの接続を試みます。

レプリカセットに接続するには、

replica set nameとセットノードのシードリストを指定します。次のフォームを使用します。

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
TLS/SSL 接続(--tls)の場合、
MongoDB Shell は、ホスト名(--host オプションまたは接続文字列で指定)が、mongod または mongos によって提示された証明書の SAN(または、SAN が存在しない場合は CN)と一致することを確認します。 SAN が存在する場合、MongoDB Shell は CN と一致しません。 ホスト名が SAN(またはCN)と一致しない場合、MongoDB Shell は接続に失敗します。
DNS シードリスト接続の場合

接続プロトコルをmongodb+srv として指定し、DNS SRV ホスト名のレコードとオプションを指定します。 authSource および replicaSet オプションが接続文字列に含まれている場合は、 TXTレコードに設定されている対応する DNS 構成オプションが無視されます。 mongodb+srv:接続文字列を使用すると、クライアント接続に対して TLS(通常は tls=true で設定)が暗黙的に有効になります。クエリ文字列に tls=false を設定すると、TLS オプションをオフにすることができます。

例

mongodb+srv://server.example.com/?connectionTimeoutMS=3000
--port <port>

mongodmongosまたは インスタンスがリッスンしているポートを指定します。 が指定されていない場合、 MongoDB Shell--port はポート27017 への接続を試みます。

--tls

Enables connection to a mongod or mongos that has TLS support enabled.

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsCertificateKeyFile <filename>

mongosh の TLS 証明書と鍵の両方を含む .pemファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。

このオプションは、--tls mongodオプションを使用して、クライアント証明書を必要とするmongos または インスタンスに接続する場合に必要です。つまり、 MongoDB Shell はこの証明書をサーバーに提示します。

注意

バージョン4.4 mongodmongos以降、X.509 証明書が30 mongod/mongosホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsCertificateKeyFilePassword <value>

証明書キーファイルを復号するためのパスワードを指定します(例:--tlsCertificateKeyFile)。

証明書キー ファイルが暗号化されている場合にのみ、--tlsCertificateKeyFilePassword オプションを使用します。いずれの場合も、MongoDB Shell は、すべてのログ記録とレポート出力からパスワードを削除します。

PEMファイル内の秘密キーが暗号化されており、--tlsCertificateKeyFilePassword オプションを指定していない場合。 MongoDB Shell ではパスフレーズの入力が求められます。

詳しくは、「TLS/SSL 証明書のパスフレーズ」を参照してください。

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsCAFile <filename>

認証局からのルート証明書チェーンを含む .pem ファイルを指定します。このファイルは、mongod や mongos インスタンスによって提示された証明書を検証するために使用されます。

相対パスまたは絶対パスを使用して、.pem ファイルのファイル名を指定します。

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsCRLFile <filename>

証明書失効リストを含む .pem ファイルを指定します。相対パスまたは絶対パスを使用して .pem ファイルのファイル名を指定します。

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsAllowInvalidHostnames

mongod/mongos インスタンスによって提示される証明書内のホスト名の検証を無効にします。 MongoDB Shell は、サーバー証明書のホスト名がサーバーのホストと一致しない場合でも、 MongoDBインスタンスに接続できます。

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsAllowInvalidCertificates

バージョン4.2の新機能。

mongod/mongos インスタンスによって提示された証明書の検証チェックをバイパスし、無効な証明書を提示するサーバーへ接続できるようにします。

注意

Starting in MongoDB 4.0, if you specify --tlsAllowInvalidCertificates when using x.509 authentication, an invalid certificate is only sufficient to establish a TLS connection but is insufficient for authentication.

警告

--tlsAllowInvalidCertificatesオプションは使用可能ですが、可能な限り使用しないでください。 の使用が必要な場合は、割り込みが不可能なシステムで--tlsAllowInvalidCertificates オプションのみを使用してください。

MongoDB シェル (および他の TLS 対応レプリカセットへの接続 )が--tlsAllowInvalidCertificates オプションで実行される場合、 シェル (および他の TLS 対応レプリカセットへの接続 )はサーバー証明書の検証を試行しません。これにより、期限切れのmongod およびmongos 証明書、および有効なmongod またはmongos インスタンスを引き受ける外部プロセスに対する脆弱性が生じます。 TLS 証明書のホスト名の検証を無効にするだけの場合は、--tlsAllowInvalidHostnames を参照してください。

TLS/SSL と MongoDB の詳細については、以下を参照してください。

--tlsCertificateSelector <parameter>=<value>

の代替としてWindowsと macOS--tlsCertificateKeyFile で利用できます。

重要

Windows と秘密キーのインポート

秘密キーをインポートするときは、エクスポート可能なものとしてマークする必要があります。Windows の証明書インポート ウィザードは、デフォルトではこのオプションをチェックしません。

Microsoft 証明書インポート ウィザードでキーがエクスポート可能としてマークされている

--tlsCertificateKeyFileと オプションは相互に排他的です。指定できるのは 1--tlsCertificateSelector つだけです。

オペレーティング システムの証明書ストアから一致する証明書を選択するために、証明書プロパティを指定します。

--tlsCertificateSelector<property>=<value>は 形式の引数を受け入れます。プロパティは次のいずれか 1 つになります。

プロパティ
値の型
説明

subject

ASCII 文字列

証明書のサブジェクト名またはコモンネーム

thumbprint

hex 文字列

SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。

thumbprint は、fingerprint と呼ばれることもあります。

システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。

注意

バージョン4.4 mongodmongos以降、X.509 証明書が30 mongod/mongosホスト システム時間から 日以内に期限切れになる場合、 / は接続時に警告を記録します。

--tlsDisabledProtocols <string>

指定した TLS プロトコルを無効にします。このオプションは、次のプロトコルを認識します。

  • TLS1_0

  • TLS1_1

  • TLS1_2

  • (バージョン 4.0.4 以降、3.6.9、3.4.24) TLS1_3

  • macOS では、TLS1_1 を無効にして、TLS1_0 と TLS1_2 の両方を有効のままにすることはできません。また、他の 2 つのうち少なくとも 1 つを無効にする必要があります(例: TLS1_0,TLS1_1 )。

  • 複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストとして指定します(例: TLS1_0,TLS1_1)。

  • 指定の無効なプロトコルは、デフォルトの無効なプロトコルを上書きします。

4.0バージョン 以降、 MongoDB1.0 1.1は、システムで TLS + が利用可能な場合、TLS の使用を無効にします。無効になっている TLS1.0 を有効にするには、none から--tlsDisabledProtocols を指定します。

--tlsUseSystemCA

mongoshがシェルに証明書を明示的に指定せずに、オペレーティング システムの証明機関ですでに利用可能な TLS 証明書を読み込めるようにします。この動作をオフにすることはできません。下位互換性のために--tlsUseSystemCA を設定することはできますが、効果はありません。

注意

このフラグは、MongoDB 接続と OIDC IdP 接続の両方に適用されます。

--authenticationDatabase <dbname>

指定された--username が作成された認証データベースを指定します。詳細については、「 認証データベース 」を参照してください。

--authenticationDatabaseの値を指定しない場合、 MongoDB Shell は接続文字列で指定されたデータベースを使用します。

--authenticationMechanism <name>

MongoDB Shell がmongod またはmongos への認証に使用する認証メカニズムを指定します。authenticationMechanism を指定せずにユーザー認証情報を提供すると、 MongoDB Shell とドライバーは SCRAM-SHA-256 を使用しようとします。これが失敗した場合は、SCRAM-SHA-1 に戻ります。

値
説明

RFC5802 標準の Salted Challenge Response Authentication Mechanism(SHA-1 ハッシュ関数を使用)。

RFC7677 標準の Salted Challenge Response Authentication Mechanism(SHA-256 ハッシュ関数を使用)。

featureCompatibilityVersion を 4.0 に設定する必要があります。

MongoDB TLS 証明書認証。

GSSAPI(Kerberos)

Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。

PLAIN(LDAP SASL)

LDAP を使用する外部認証。 データベース内のユーザー認証には、PLAIN を使用することもできます。 PLAIN はパスワードをプレーン テキストで送信します。 このメカニズムはMongoDB EnterpriseおよびMongoDB Atlasで使用できます。

MONGODB-OIDC(OpenID Connect)

MONGODB-AWS (Amazon Web Services IAM)

Amazon Web Services Identity and Access Management(Amazon Web Services IAM)認証情報を使用した外部認証。 このメカニズムはMongoDB EnterpriseおよびMongoDB Atlasで使用できます。

--gssapiServiceName

GSSAPI/Kerberos を使用してサービスの名前を指定します。サービスがデフォルト名mongodb を使用しない場合のみ必要となります。

このオプションは MongoDB Enterprise でのみ使用できます。

--sspiHostnameCanonicalization <string>

ホスト名の正規化を使用するかどうかを指定します。

--sspiHostnameCanonicalizationは、CANONICALIZE_HOST_NAME:true|false 接続文字列のauthMechanismProperties 部分に キーペアを設定するのと同じ効果があります。

が--sspiHostnameCanonicalization に設定されている場合:

  • forwardAndReverse は、DNS フォワードルックアップを実行してから、リバースルックアップを実行します。mongosh 1.3.0 の新機能。

  • forward の効果は authMechanismProperties=CANONICALIZE_HOST_NAME:true を設定するのと同じです。

  • none の効果は authMechanismProperties=CANONICALIZE_HOST_NAME:false を設定するのと同じです。

--oidcFlows

OpenID Connect フローをカンマ区切りのリストで指定します。OpenID Connect フローは、認証プロセスのために mongosh が ID プロバイダーとどのように連携するかを指定します。mongosh は次の OpenID Connect フローをサポートしています。

OpenID Connect フロー
説明

auth-code

デフォルト。mongosh はブラウザを開き、IdP のログイン画面にリダイレクトします。

device-auth

mongosh は、認証を完了するための URL とコードを提供します。これは、安全性の低い OpenID Connect フローであると考えられますが、ブラウザを開くことができない環境で mongosh を実行する場合に使用できます。

device-auth を auth-code の予備オプションとして設定するには、次の例を参照してください。

mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcDumpTokens

mongosh が余計なデバッグ情報を含むトークンを出力するかどうかを指定します。このオプションはデバッグ目的のみに使用してください。

--oidcDumpTokens オプションは以下の値を受け入れます。

値
説明

redacted

--oidcDumpTokens のみを設定する場合はデフォルトとなります。機密データが編集されたトークンのデバッグ情報を出力します。

include-secrets

データベースサーバーに対して認証できる可能性のある認証情報を含むトークンのデバッグ情報を出力します。

重要

include-secrets 値は、攻撃者が認証に使うことができる認証情報を露出させます。権限のないユーザーが mongosh の出力を表示できず、診断目的で認証情報が必要な場合にのみ、このオプションを使用してください。

--oidcIdTokenAsAccessToken

mongosh が ID プロバイダーから受け取った ID トークンをアクセス トークンの代わりに使用するかどうかを指定します。構成できない IdP にこのオプションを使用して、JWT アクセス トークンを提供します。

--oidcNoNonce

デフォルトでは、mongosh は OIDC 承認コードフロー中に nonce パラメータを送信します。

--oidcNoNonce オプションを設定すると、mongosh は noance パラメータを送信しません。IdPが承認の一部としてnonce値をサポートしていない場合は、このオプションを使用します。

--oidcRedirectUri

認証後に IdP がリダイレクトする URI を指定します。URI は IdP の構成と一致する必要があります。デフォルトは http://localhost:27097/redirect です。

--oidcTrustedEndpoint

現在の接続が Atlas または localhost 以外の信頼できるエンドポイントとなる接続されたデバイスへの接続であることを示します。これにより、アクセス トークンがサーバーに送信されるようになります。このオプションは、信頼できるサーバーに接続する場合にのみ使用してください。

--browser

MONGODB-OIDC が有効な場合に mongosh がリダイレクトするブラウザを指定します。

このオプションは、システム shell で実行されます。

開いているブラウザを完全に無効にするには、--no-browser を に設定します。

--password <password>, -p <password>

認証 を使用するMongoDBデータベースに対して認証するためのパスワードを指定します。--username および--authenticationDatabase オプションと組み合わせて使用します。

MongoDB Shell でパスワードの入力を求めるように強制するには、最後のオプションとして--password オプションを入力し、引数を省略します。

--username <username>, -u <username>

認証 を使用するMongoDBデータベースへの認証すに使用するユーザー名を指定します。--password および--authenticationDatabase オプションと組み合わせて使用します。

--retryWrites

再試行可能な書き込みを有効にします。

デフォルトでは、再試行可能な書込みは次のとおりです。

  • で有効 mongosh

  • レガシーmongo shell では無効

再試行可能な書込みを無効にするには、--retryWrites=false を使用します。

セッションの詳細については、「クライアント セッションと因果整合性の保証」を参照してください。

--cryptSharedLibPath <string>

バージョン8.2の新機能。

82自動暗号化共有ライブラリへのパス。ライブラリはバージョン..0 以上である必要があります。mongosh シェルセッションの自動暗号化を使用するために必要です。

--awsAccessKeyId <string>

AWSアクセス キー ListReadは、 AWS KMS(Key Management Service)に対する と 権限を持つmongosh IAM ユーザーに関連付けられています。 は指定された--awsAccessKeyId を使用して KMS にアクセスします。

--awsAccessKeyIdシェルセッションでクライアント側のフィールドレベル暗号化を有効にするには、 mongoshが必要です。 には次のコマンドラインオプションが--awsAccessKeyId 両方とも 必要です。

--awsAccessKeyIdが省略されている場合は、 シェルセッション内でMongo() コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。

アクセス キーがログに漏洩するリスクを軽減するには、--awsAccessKeyId に環境変数を指定することを検討してください。

--awsSecretAccessKey <string>

指定された に関連付けられたAWS秘密キー--awsAccessKeyId です。

--awsSecretAccessKeyセッションでクライアント側のフィールドレベル暗号化を有効にするには、 mongoshが必要です。 には次のコマンドラインオプションが--awsSecretAccessKey 両方とも 必要です。

--awsSecretAccessKeyとそのサポート オプションが省略されている場合は、 シェルセッション内でMongo() を使用して、クライアント側のフィールドレベル暗号化を有効にします。

アクセス キーがログに漏洩するリスクを軽減するには、--awsSecretAccessKey に環境変数を指定することを検討してください。

--awsSessionToken <string>

--awsAccessKeyId指定された に関連付けられたAWSセッション トークン です。

--awsSessionTokenシェルセッションでクライアント側のフィールドレベル暗号化を有効にするには、 mongoshが必要です。 には、次のコマンドラインオプションが--awsSessionToken すべて 必要です。

--awsSessionTokenとそのサポート オプションが省略されている場合は、 シェルセッション内でMongo() を使用して、クライアント側のフィールドレベル暗号化を有効にします。

アクセス キーがログに漏洩するリスクを軽減するには、--awsSessionToken に環境変数を指定することを検討してください。

--keyVaultNamespace <string>

クライアント側フィールドレベル暗号化のキーヴォールトとして使用されるコレクションの完全な名前空間(<database>.<collection>)です。--keyVaultNamespace は、mongosh shell セッションでクライアントサイドのフィールドレベル暗号化を有効にするために必要です。mongosh は、指定された名前空間が存在しない場合は、その名前空間を作成します。

--keyVaultNamespaceには次のコマンドラインオプションが 両方とも 必要です。

--keyVaultNamespaceとそのサポート オプションが省略されている場合は、 シェルセッション内でMongo() コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。