レガシーmongo
shell
注意
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を選択します。
アーカイブから
mongo
shell をファイルシステム上のロケーションにコピーします。
プラットフォームに固有の追加のインストール ガイダンスや、MongoDB Server インストールの一部としてmongo
shell をインストールする方法については、ご使用のプラットフォームのインストール ガイドを参照してください。
構文
デフォルト設定を使用せずに
mongo
shell を実行できます。mongo ホストとポートやその他の接続オプションを指定する
mongo
shell接続string を使用して を実行できます。たとえば、次にはtls
が含まれています。mongo "mongodb://mongodb0.example.com:27017/testdb?tls=true" tls
オプションは MongoDB 4.2以降で利用可能です。 以前のバージョンでは、ssl
オプションを使用します。mongo
shellをレプリカセットに接続するには、接続stringでレプリカセット メンバーと名前を指定できます。mongo "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA" 接続stringオプションの詳細については、「 接続文字列 」を参照してください。
さまざまな コマンドライン オプション を使用して
mongo
shell を実行できます。 例:mongo --host mongodb0.example.com:27017 [additional options] mongo --host mongodb0.example.com --port 27017 [additional options] 利用可能なオプションの詳細については、「オプション」を参照してください。
オプション
バージョン4.2での変更:
MongoDB は SSL オプションを非推奨にし、代わりに対応する新しい TLS オプションを追加します。
中心的オプション
--shell
shell インターフェイスを有効にします。
mongo
コマンドを呼び出して JavaScript ファイルを引数として指定するか、--eval
を使用してコマンドラインで JavaScript を指定すると、ファイルの実行が完了した後に--shell
オプションによってユーザーに shell プロンプトが表示されます。
--nodb
shell がデータベース インスタンスに接続できないようにします。 後で 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://server.example.com/?connectionTimeout=3000ms バージョン 3.6 の新機能。
--eval <javascript>
引数として指定された JavaScript 式を評価します。
mongo
は、コードを評価するときに独自の環境をロードしません。 その結果、shell 環境の多くのオプションは使用できません。
--username <username>, -u <username>
認証を使用する MongoDB データベースへの認証すに使用するユーザー名を指定します。
--password
オプションおよび--authenticationDatabase
オプションと組み合わせて使用します。MongoDB Atlasを使用して
MONGODB-AWS
authentication mechanism
Amazon 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-AWS
authentication mechanism
Amazon 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-AWS
authentication mechanism
Amazon Web Servicesアクセスキー とシークレットアクセスキーに加えてセッションIDAmazon Web Services トークンを使用する場合は、このフィールドまたは 接続 にstring セッション トークンを指定します。 。あるいは、この値は環境変数AWS_SESSION_TOKEN
として指定することもできます。 「 IAM 認証情報を使用して MongoDB Atlasクラスターに接続する 」を参照してください。Amazon Web ServicesMONGODB-AWS
authentication mechanism
を使用している場合にのみ有効です。
--help, -h
mongo
のオプションと使用に関する情報を返します。
--version
mongo
のリリース番号を返します。
--networkMessageCompressors <string>
バージョン 3.4 で追加。
この
mongo
shell と以下の間の通信でネットワーク圧縮を有効にします。次の圧縮プログラムを指定できます。
重要
両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。
複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。たとえば、
mongosh
が次のネットワーク コンプレッサーzlib,snappy
を指定し、mongod
がsnappy,zlib
を指定する場合、mongosh
とmongod
の間のメッセージはzlib
を使用します。両者に共通のコンプレッサーが 1 つもなければ、両者間のメッセージは圧縮されません。例えば、
mongosh
ではネットワーク コンプレッサーとしてzlib
が指定され、mongod
ではsnappy
が指定されている場合、mongosh
とmongod
の間のメッセージは圧縮されません。
--ipv6
IPv 6のサポートを有効にします。
mongo
はデフォルトで IPv 6を無効にします。IPv 経由で MongoDB6 クラスターに接続するには、 shell
--ipv6
mongo
を起動するときに--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 上記のコマンドは、
mongo
shell をローカルマシン上で実行されている 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 コンパイラーを無効にします。
--disableJavaScriptProtection
JavaScriptおよび javascriptWithScope(*非推奨*) JavaScriptのフィールドを の
mongo
shell 関数に自動的にマーシャリングできるようにします。--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-AWS
authentication mechanisms
を使用する場合は、--authenticationDatabase
を$external
に設定する必要があります。
--authenticationMechanism <name>
デフォルト: SCRAM-SHA-1
mongo
インスタンスがmongod
またはmongos
への認証に使用する認証メカニズムを指定します。バージョン4.4での変更: With MongoDB 4.4, the
mongo
shell adds support for the newMONGODB-AWS
authentication mechanism when connecting to a MongoDB Atlas cluster.値説明SHA-1 ハッシュ関数を使用する RFC5802 標準の Salted Challenge Response Authentication Mechanismです。SHA-256 ハッシュ関数を使用する RFC 7677 標準の Salted Challenge Response Authentication Mechanism。
featureCompatibilityVersion を
4.0
に設定する必要があります。MongoDB TLS/SSL 証明書認証。MONGODB-AWS
MongoDB Atlas クラスターへの接続に使用する AWS IAM 認証情報を使用した外部認証。「AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続する」を参照してください。GSSAPI(Kerberos)Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。PLAIN(LDAP SASL)LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN
を使用することもできます。PLAIN
はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。
--gssapiHostName
GSSAPI/Kerberosを使用してサービスのホスト名を指定します。 マシンのホスト名が DNS によって解決されたホスト名と一致しない場合にのみ必要となります。
このオプションは MongoDB Enterprise でのみ使用できます。
--gssapiServiceName
GSSAPI/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の新機能
mongo
shell の TLS/SSL 証明書と鍵の両方を含む.pem
ファイルを指定します。 相対パスまたは絶対パスを使用して、.pem
ファイルのファイル名を指定します。このオプションは、
--tls
オプションを使用して、 クライアント証明書mongod
mongos
を必要とする または インスタンスに接続する場合に必要です。つまり、mongo
shell はこの証明書をサーバーに提示します。が 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 つになります。プロパティ値の型説明subject
ASCII 文字列証明書のサブジェクト名またはコモンネームthumbprint
hex 文字列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
ファイルのファイル名を指定します。このオプションは、
--ssl
mongod
mongos
ssl.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 つになります。プロパティ値の型説明subject
ASCII 文字列証明書のサブジェクト名またはコモンネームthumbprint
hex 文字列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 証明書のホスト名の検証を無効にします。証明書内のホスト名が指定されたホスト名と一致しない場合でも、
mongo
MongoDB インスタンスに接続できるようにします。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 の新機能。
mongo
shell のセッションでは、再試行可能な書込みをデフォルトで有効にします。セッションの詳細については、「クライアント セッションと因果整合性の保証 」を参照してください。
クライアント側のフィールドレベル暗号化オプション
--awsAccessKeyId <string>
の Amazon Web Servicesアクセスキー
List
Read
Amazon Web ServicesKMS( )の および 権限を持つ IAM ユーザーに関連付けられている場合KMSmongo
shell は、指定された--awsAccessKeyId
を使用して KMS にアクセスします。{
--awsAccessKeyId
shell セッションで クライアント側のフィールドレベル暗号化 を有効にするには、 が必要です。mongo
--awsAccessKeyId
には、次のコマンドライン オプションがすべて必要です。--awsAccessKeyId
が省略されている場合は、shell セッション内でMongo()
コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsAccessKeyId
に指定することを検討してください。
--awsSecretAccessKey <string>
Amazon Web Services
--awsAccessKeyId
の 秘密キー 指定された に関連付けられています。{
--awsSecretAccessKey
shell セッションで クライアント側のフィールドレベル暗号化 を有効にするには、 が必要です。mongo
--awsSecretAccessKey
には、次のコマンドライン オプションがすべて必要です。--awsSecretAccessKey
とそのサポート オプションが省略されている場合は、shell セッション内でMongo()
を使用して、クライアント側のフィールドレベルの暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsSecretAccessKey
に指定することを検討してください。
--awsSessionToken <string>
Amazon Web Servicesセッション トークン
--awsAccessKeyId
指定された に関連付けられています。{
--awsSessionToken
shell セッションで クライアント側のフィールドレベル暗号化 を有効にするには、 が必要です。mongo
--awsSessionToken
には、次のコマンドライン オプションがすべて必要です。--awsSessionToken
とそのサポート オプションが省略されている場合は、shell セッション内でMongo()
を使用して、クライアント側のフィールドレベルの暗号化を有効にします。アクセス キーがログに漏洩するリスクを軽減するには、環境変数を
--awsSessionToken
に指定することを検討してください。
--keyVaultNamespace <string>
クライアント側のフィールドレベル暗号化のキーヴォールトとして使用されるコレクションの完全な名前空間(
<database>.<collection>
)。 クライアント側のフィールドレベル暗号化を有効にするには、--keyVaultNamespace
が必要です。mongo
shell セッション用。mongo
は、指定された名前空間が存在しない場合は、その名前空間を作成します。--keyVaultNamespace
には次のコマンドライン オプションがすべて必要です。--keyVaultNamespace
とそのサポート オプションが省略されている場合は、shell セッション内でMongo()
コンストラクターを使用して、クライアント側のフィールドレベル暗号化を有効にします。
ファイル
~/.dbshell
mongo
は.dbshell
ファイルにコマンドの履歴を保持します注意
mongo
は認証に関連するインタラクションを履歴ファイルに記録しませんauthenticate
やdb.createUser()
など)。
~/.mongorc.js
mongo
は、mongo
を呼び出しているユーザーのホームページから.mongorc.js
ファイルを読み取ります。 ファイルでは、ユーザーは変数を定義したり、mongo
shell プロンプトをカスタマイズしたり、shell を起動するたびに更新したい情報を更新したりできます。 shellmongo --eval
を使用して、 を使用してコマンドラインで、または mongo にmongo
.js ファイルを指定し て JavaScript.mongorc.js
ファイルまたは式を評価すると、JavaScript の処理が完了した 後 に は ファイルを読み取ります。.mongorc.js
の読み取りを無効にするには、--norc
オプションを指定します。
/etc/mongorc.js
mongo
shell が起動時に評価するグローバルmongorc.js
ファイル。 ユーザーがHOME
ディレクトリに.mongorc.js
ファイルも存在する場合、mongo
shell はユーザーの.mongorc.js
ファイルを評価する前に、グローバル/etc/mongorc.js
ファイルを評価します。/etc/mongorc.js
shell を実行しているユーザーには読み取り権限が必要です。 の--norc
mongo
オプションは、ユーザーの ファイルのみを抑制します。.mongorc.js
Windows では、グローバル
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
EDITOR
edit
shell コマンドで使用するエディターへのパスを指定します。 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 | mongo shell を終了する |
Ctrl-D | 文字の削除(または mongo shell を終了) |
Ctrl-E | 行の末尾にGo |
Ctrl-F | 1 文字進みGo |
Ctrl-G | 中止 |
Ctrl-J | 行を受け入れ/評価する |
Ctrl-K | 行を強制終了/削除します |
Ctrl-L または タイプ cls | 画面のクリア |
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 mongo
shellを指定します。次の例では、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://server.example.com/?username=allison"
mongo
shell では、 username
オプションで指定されたユーザーのパスワードの入力を自動的に求められます。
AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
バージョン 4.4 で追加。
MongoDB AtlasAmazon Web ServicesIAM の認証情報 経由での認証をサポートするように構成済みの クラスターに接続します。 stringmongo
shellは、次のような への 接続 を提供します。
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-AWS
authentication mechanism
$external
authSource
に接続するには、この例に示すように、 と が使用されます。
Amazon Web Servicesセッション トークン を使用する場合AWS_SESSION_TOKEN
また、次のように、authMechanismProperties
接続string に 値を指定します。
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://cluster0.example.com/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
を使用すると、 shellMONGODB-AWS
authentication mechanism
は次の環境変数をチェックします。
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_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://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'
シェルに対してJavaScriptを実行JavaScriptmongo
shell
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)"