MongoDB Shell のさまざまな側面を表示、制御するには、次のオプションを使用します。
一般オプション
--build-infomongoshビルドとドライバーの依存関係に関する情報を含む 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 コンソールに入らずに、コマンド ラインからスクリプトを実行します。
詳細と例については、「コマンドラインからのスクリプトの実行」を参照してください。
--no-quiet--quiet非インタラクティブシェルセッションのデフォルトの オプションモードを無効にします。これを指定すると、mongoshはスタートアップ中にすべてのメッセージを表示します。
--quietスタートアップ時にすべてのメッセージ(ウェルカムメッセージやスタートアップ警告など)をスキップし、プロンプトに直接移動します。
非インタラクティブシェルセッションの場合、 MongoDB はデフォルトで
--quietを有効にします。この動作は--no-quietを使用して無効にできます。
--skipStartupWarningsmongoshセッションの作成時に がサーバースタートアップ警告を表示しないようにします。すべてのスタートアップメッセージを非表示にするには、--quietオプションを使用します。
Stable API オプション
--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によって提示された証明書のSAN(SANが存在しない場合はCN)と一致することを確認します。またはmongos。SANが存在する場合、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 のオプション
--tlsCertificateKeyFile <filename>mongoshの TLS / SSL 証明書と鍵の両方を含む.pemファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。このオプションは、
--tlsオプションを使用して、クライアント証明書を必要とするmongodまたはmongosインスタンスに接続する場合に必要です。つまり、MongoDB Shell はこの証明書をサーバーに提示します。注意
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 の詳細については、以下を参照してください。
--tlsAllowInvalidHostnamesmongodやmongosインスタンスによって提示される証明書内のホスト名の検証を無効にします。MongoDB Shell は、サーバー証明書のホスト名がサーバーのホストと一致しない場合でも、MongoDB インスタンスに接続できます。TLS/SSL と MongoDB の詳細については、以下を参照してください。
--tlsAllowInvalidCertificatesバージョン 4.2の新機能
mongodやmongosインスタンスによって提示された証明書の検証チェックをバイパスし、無効な証明書を提示するサーバーへ接続できるようにします。注意
MongoDB 4.0 以降、x.509 認証を使用する時に
--tlsAllowInvalidCertificatesを指定する場合、無効な証明書は TLS / SSL 接続を確立するには十分ですが、認証には不十分です。警告
--tlsAllowInvalidCertificatesオプションは使用可能ですが、可能な限り使用しないでください。--tlsAllowInvalidCertificatesの使用が必要な場合は、侵入が不可能なシステムでのみこのオプションを使用してください。MongoDB Shell(およびその他の MongoDB ツール)が
--tlsAllowInvalidCertificatesオプションで実行される場合、shell(およびその他の MongoDB ツール)はサーバー証明書の検証を試行しません。これにより、期限切れのmongodとmongosの証明書、および有効なmongodまたはmongosインスタンスを装った外部プロセスに対する脆弱性が生じます。TLS/SSL証明書のホスト名の検証のみを無効にする必要がある場合は、--tlsAllowInvalidHostnamesを参照してください。TLS/SSL と MongoDB の詳細については、以下を参照してください。
--tlsCertificateSelector <parameter>=<value>--tlsCertificateKeyFileの代替として、Windows および macOS で利用可能です。重要
Windows と秘密キーのインポート
秘密キーをインポートするときは、エクスポート可能なものとしてマークする必要があります。Windows の証明書インポート ウィザードは、デフォルトではこのオプションをチェックしません。
![Microsoft 証明書インポート ウィザードでキーがエクスポート可能としてマークされている]()
--tlsCertificateKeyFileオプションと--tlsCertificateSelectorオプションは相互に排他的です。 指定できるのは 1 つだけです。オペレーティング システムの証明書ストアから一致する証明書を選択するために、証明書プロパティを指定します。
--tlsCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。
--tlsDisabledProtocols <string>指定した TLS プロトコルを無効にします。このオプションは、次のプロトコルを認識します。
TLS1_0TLS1_1TLS1_2(バージョン 4.0.4 以降、3.6.9、3.4.24)
TLS1_3macOS では、
TLS1_1を無効にして、TLS1_0とTLS1_2の両方を有効のままにすることはできません。また、他の 2 つのうち少なくとも 1 つを無効にする必要があります(例:TLS1_0,TLS1_1)。複数のプロトコルを指定するには、プロトコルをカンマで区切ったリストとして指定します(例:
TLS1_0,TLS1_1)。指定の無効なプロトコルは、デフォルトの無効なプロトコルを上書きします。
バージョン 4.0 以降、MongoDB は、システムで TLS 1.1+ が利用可能な場合、TLS 1.0 の使用を無効にします。無効になっている TLS 1.0 を有効にするには、
--tlsDisabledProtocolsにnoneを指定します。
--tlsUseSystemCAmongoshがシェルに証明書を明示的に指定せずに、オペレーティング システムの証明機関ですでに利用可能な 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 に戻ります。値説明RFC 5802 標準の Salted Challenge Response Authentication Mechanism(SHA-1 ハッシュ関数を使用)。
RFC7677 標準の Salted Challenge Response Authentication Mechanism。256
featureCompatibilityVersion を
4.0に設定する必要があります。MongoDB TLS/SSL 証明書認証。
GSSAPI(Kerberos)
Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
PLAIN(LDAP SASL)
LDAP を使用する外部認証。 データベース内のユーザー認証には、
PLAINを使用することもできます。PLAINはパスワードをプレーン テキストで送信します。 このメカニズムはMongoDB EnterpriseおよびMongoDB Atlasで使用できます。MONGODB-OIDC(OpenID Connect)
OpenID Connect を使用した外部認証。 このメカニズムはMongoDB EnterpriseおよびMongoDB Atlasで使用できます。
MONGODB-AWS(Amazon Web Services IAM)Amazon Web Services Identity and Access Management(Amazon Web Services IAM)認証情報を使用した外部認証。 このメカニズムはMongoDB EnterpriseおよびMongoDB Atlasで使用できます。
--gssapiServiceNameGSSAPI/Kerberos を使用してサービスの名前を指定します。サービスがデフォルト名
mongodbを使用しない場合のみ必要となります。このオプションは MongoDB Enterprise でのみ使用できます。
--sspiHostnameCanonicalization <string>ホスト名の正規化を使用するかどうかを指定します。
--sspiHostnameCanonicalizationは、接続文字列のauthMechanismProperties部分にCANONICALIZE_HOST_NAME:true|falseキーペアを設定するのと同じ効果があります。--sspiHostnameCanonicalizationが設定されている場合、次のようになります。forwardAndReverseは、DNS フォワードルックアップを実行してから、リバースルックアップを実行します。mongosh1.3.0 の新機能。forwardの効果はauthMechanismProperties=CANONICALIZE_HOST_NAME:trueを設定するのと同じです。noneの効果はauthMechanismProperties=CANONICALIZE_HOST_NAME:falseを設定するのと同じです。
--oidcFlowsOpenID Connect フローをカンマ区切りのリストで指定します。OpenID Connect フローは、認証プロセスのために
mongoshが ID プロバイダーとどのように連携するかを指定します。mongoshは次の OpenID Connect フローをサポートしています。OpenID Connect フロー説明auth-codeデフォルト。
mongoshはブラウザを開き、IdP のログイン画面にリダイレクトします。device-authmongoshは、認証を完了するための URL とコードを提供します。これは、安全性の低い OpenID Connect フローであると考えられますが、ブラウザを開くことができない環境でmongoshを実行する場合に使用できます。device-authをauth-codeの予備オプションとして設定するには、次の例を参照してください。mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcDumpTokensmongoshが追加のデバッグ情報を含むトークンを出力するかどうかを指定します。このオプションは、デバッグ目的のみで使用してください。--oidcDumpTokensオプションは次の値を受け入れます。値説明redacted--oidcDumpTokensのみを設定する場合はデフォルト。機密データが編集されたトークン デバッグ情報を出力します。include-secretsデータベースサーバーに対して認証できる可能性のある資格情報を含むトークン デバッグ情報を出力します。
重要
include-secrets値は、攻撃者が認証に使用できる認証情報を公開します。権限のないユーザーがmongoshの出力を表示できず、診断目的で認証情報が必要な場合にのみ、このオプションを使用してください。
--oidcIdTokenAsAccessTokenmongoshが ID プロバイダーから受け取った ID トークンをアクセス トークンの代わりに使用するかどうかを指定します。構成できない IdP にこのオプションを使用して、JWT アクセス トークンを提供します。
--oidcNoNonceデフォルトでは 、
mongoshは OIDC 認証コードフロー中に noance パラメータを送信します。--oidcNoNonceオプションを設定すると、mongoshは noance パラメータを送信しません。 IdP が認可の一部として noance 値をサポートしていない場合は、このオプションを使用します。
--oidcRedirectUri認証後に IdP がリダイレクトする URI を指定します。URI は IdP の構成と一致する必要があります。デフォルトは
http://localhost:27097/redirectです。
--oidcTrustedEndpoint現在の接続が Atlas または
localhost以外の信頼できるエンドポイントへの接続であることを示します。これにより、アクセス トークンがサーバーに送信されるようになります。このオプションは、信頼できるサーバーに接続する場合にのみ使用してください。
--browserMONGODB-OIDCが有効な場合にmongoshがリダイレクトするブラウザを指定します。このオプションは、システム shell で実行されます。
開いているブラウザを完全に無効にするには、
--no-browserを に設定します。
--password <password>, -p <password>認証を使用する MongoDB データベースに対して認証するためのパスワードを指定します。
--usernameオプションおよび--authenticationDatabaseオプションと組み合わせて使用します。MongoDB Shell でパスワードの入力を求めるように強制するには、最後のオプションとして
--passwordオプションを入力し、引数を省略します。
--username <username>, -u <username>認証を使用する MongoDB データベースへの認証すに使用するユーザー名を指定します。
--passwordオプションおよび--authenticationDatabaseオプションと組み合わせて使用します。
セッション オプション
--retryWrites再試行可能な書込みを有効にします。
デフォルトでは、再試行可能な書込みは次のとおりです。
で有効
mongoshレガシー
mongoshell では無効
再試行可能な書込みを無効にするには、
--retryWrites=falseを使用します。セッションの詳細については、「クライアント セッションと因果整合性の保証」を参照してください。
フィールドレベル暗号化オプション
--cryptSharedLibPath <string>バージョン8.2の新機能。
自動暗号化共有ライブラリへのパス。ライブラリはバージョン8.2.0 以上である必要があります。
mongoshシェルセッションの自動暗号化を使用するために必要です。
--awsAccessKeyId <string>Amazon Web
ListReadServices KMS(KMS)に対する と 権限を持つ IAM ユーザーに関連付けられたAmazon Web Servicesアクセス キー 。mongoshは指定された--awsAccessKeyIdを使用して KMS にアクセスします。mongoshshell セッションでクライアント側のフィールドレベル暗号化を有効にするには、--awsAccessKeyIdが必要です。--awsAccessKeyIdには、次のコマンドライン オプションが両方とも必要です。--awsAccessKeyIdが省略されている場合は、shell セッション内でMongo()コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsAccessKeyIdに指定することを検討してください。
--awsSecretAccessKey <string>指定された に関連付けられたAmazon Web Services秘密キー
--awsAccessKeyIdです。mongoshセッションでクライアント側のフィールドレベル暗号化を有効にするには、--awsSecretAccessKeyが必要です。--awsSecretAccessKeyには、次のコマンドライン オプションが両方とも必要です。--awsSecretAccessKeyとそのサポート オプションが省略されている場合は、shell セッション内でMongo()を使用して、クライアント側のフィールドレベルの暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsSecretAccessKeyに指定することを検討してください。
--awsSessionToken <string>指定された に関連付けられたAmazon Web Servicesセッション トークン
--awsAccessKeyId。mongoshshell セッションでクライアント側のフィールドレベル暗号化を有効にするには、--awsSessionTokenが必要です。--awsSessionTokenには、次のコマンドライン オプションがすべて必要です。--awsSessionTokenとそのサポート オプションが省略されている場合は、shell セッション内でMongo()を使用して、クライアント側のフィールドレベルの暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsSessionTokenに指定することを検討してください。
--keyVaultNamespace <string>クライアント側のフィールドレベル暗号化のキーヴォールトとして使用されるコレクションの完全な名前空間(
<database>.<collection>)。 {--keyVaultNamespacemongoshshell セッションでクライアント側のフィールドレベル暗号化を有効にするには、 が必要です。mongoshは、指定された名前空間が存在しない場合は、その名前空間を作成します。--keyVaultNamespaceには、次のコマンドライン オプションが両方とも必要です。--keyVaultNamespaceとそのサポート オプションが省略されている場合は、shell セッション内でMongo()コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。
