Docs Menu
Docs Home
/
MongoDB Shell
/

オプション

項目一覧

  • 一般オプション
  • Stable API オプション
  • 接続オプション
  • TLS のオプション
  • 認証オプション
  • セッション オプション
  • クライアント側のフィールドレベル暗号化オプション

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 がデータベース インスタンスに接続できないようにします。

--norc

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

--quiet

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

--shell

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

--verbose

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

--version

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

--apiVersion <version number>

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

--apiStrict

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

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

--apiDeprecationErrors

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

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

--host <hostname>

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

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

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

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

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

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

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

--tls

TLS/SSL サポートが有効になっている mongod または mongos への接続を有効にします。

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

--tlsCertificateKeyFile <filename>

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

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

注意

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

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

--tlsCertificateKeyFilePassword <value>

証明書鍵ファイルの複合化用パスワード(--tlsCertificateKeyFile)を指定します。

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

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

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

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

--tlsCAFile <filename>

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

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

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

--tlsCRLFile <filename>

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

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

--tlsAllowInvalidHostnames

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

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

--tlsAllowInvalidCertificates

バージョン 4.2の新機能

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

注意

MongoDB 4.0 以降、x.509 認証を使用する時に --tlsAllowInvalidCertificates を指定する場合、無効な証明書は TLS / SSL 接続を確立するには十分ですが、認証には不十分です。

警告

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

MongoDB Shell(およびその他の MongoDB ツール)が --tlsAllowInvalidCertificates オプションで実行される場合、shell(およびその他の MongoDB ツール)はサーバー証明書の検証を試行しません。これにより、期限切れのmongodmongos の証明書、および有効な mongod または mongos インスタンスを装った外部プロセスに対する脆弱性が生じます。TLS/SSL証明書のホスト名の検証のみを無効にする必要がある場合は、--tlsAllowInvalidHostnames を参照してください。

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

--tlsCertificateSelector <parameter>=<value>

--tlsCertificateKeyFile の代替として、Windows および macOS で利用可能です。

重要

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

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

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

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

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

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

プロパティ
値の型
説明
subject
ASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprint
hex 文字列

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

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

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

注意

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

--tlsDisabledProtocols <string>

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

  • TLS1_0

  • TLS1_1

  • TLS1_2

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

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

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

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

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

--tlsUseSystemCA

mongosh が、オペレーティング システムの証明機関で利用可能な TLS 証明書を読み込めるようにします。オペレーティング システムですでに使用可能な TLS 証明書を mongosh に明示的に指定せずに使用する場合は、このオプションを使用します。

--authenticationDatabase <dbname>

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

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

--authenticationMechanism <name>

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

説明
SHA-1 ハッシュ関数を使用する RFC5802 標準の Salted Challenge Response Authentication Mechanismです。

SHA-256 ハッシュ関数を使用する RFC 7677 標準の Salted Challenge Response Authentication Mechanism。

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

MongoDB TLS/SSL 証明書認証。
GSSAPI(Kerberos)
Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
PLAIN(LDAP SASL)
LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN を使用することもできます。PLAIN はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。
MONGODB-OIDC(OpenID Connect)
OpenID Connect を使用した外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
--gssapiServiceName

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

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

--sspiHostnameCanonicalization <string>

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

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

--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-authauth-code の予備オプションとして設定するには、次の例を参照してください。

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

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

--oidcTrustedEndpoint

Atlas または localhost 以外の信頼できるエンドポイントへの接続を指定します。このオプションは、信頼できるサーバーに接続する場合にのみ使用してください。

--browser

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

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

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

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

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

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

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

--retryWrites

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

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

  • で有効 mongosh

  • レガシーmongo shell では無効

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

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

--awsAccessKeyId <string>

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

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

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

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

--awsSecretAccessKey <string>

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

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

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

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

--awsSessionToken <string>

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

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

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

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

--keyVaultNamespace <string>

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

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

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

戻る

.mongoshrc