Docs Menu
Docs Home
/
MongoDBマニュアル
/ / /

レガシーmongo shell

項目一覧

  • 説明
  • 構文
  • オプション
  • ファイル
  • environment
  • キーボードショートカット
  • 使用

注意

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をスタンドアロン パッケージとしてインストールできます。

  1. MongoDB のエディションのダウンロード センターにアクセスします。

  2. ドロップダウンから、ご希望の VersionPlatformを選択します。

  3. プラットフォームに応じてダウンロードするPackageを選択します。

    プラットフォーム
    パッケージのダウンロード

    Windows

    zipシェルを含むアーカイブをダウンロードするには、mongo パッケージを選択します。

    MacOS

    tgzシェルを含むアーカイブをダウンロードするには、mongo パッケージを選択します。

    Linux

    tgzmongoパッケージを選択して シェルをダウンロードします。

  4. アーカイブからmongo shell をファイルシステム上のロケーションにコピーします。

プラットフォームに固有の追加のインストール ガイダンスや、MongoDB Server インストールの一部としてmongo shell をインストールする方法については、ご使用のプラットフォームのインストール ガイドを参照してください。

注意

  • MongoDB 4.2 (および4.0.13 )以降、非正規の MongoDB インスタンスに接続すると、 mongo shell に非正規の MongoDB インスタンスに接続すると、当該インスタンスは正規の MongoDB インスタンスとは異なる動作をする可能性があるため、警告メッセージが表示されます。例: 欠落または不完全な機能、機能の異なる動作などの警告メッセージが表示されます。

  • mongo は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。

  • デフォルト設定を使用せずにmongo shell を実行できます。

    mongo
  • ホストとポートやその他の接続オプションを指定する mongoshell接続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 内のデータベースに接続するには、「新しい接続の開始 」を参照してください。

--norc

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

--quiet

接続プロセス中に shell からの出力をサイレントにします。

--port <port>

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

--host <hostname>

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

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

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

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
TLS/SSL接続( --ssl )の場合
mongoshは、ホスト名( --hostオプションまたは接続stringで指定)が、 mongodによって提示された証明書の SANSAN が存在しない場合は CN)と一致することを確認します。またはmongosSANが存在する場合、 mongoshCNと一致しません。 ホスト名が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-AWSauthentication 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-AWSauthentication 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 AtlasMONGODB-AWSauthentication mechanismAmazon Web Servicesアクセスキー とシークレットアクセスキーに加えてセッションIDAmazon Web Services トークンを使用する場合は、このフィールドまたは 接続 にstring セッション トークンを指定します。 。あるいは、この値は環境変数AWS_SESSION_TOKENとして指定することもできます。 「 IAM 認証情報を使用して MongoDB Atlasクラスターに接続する 」を参照してください。Amazon Web Services

MONGODB-AWS authentication mechanism を使用している場合にのみ有効です。

--help, -h

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

--version

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

--verbose

接続プロセス中の shell の出力の冗長度を高めます。

--networkMessageCompressors <string>

バージョン 3.4 で追加

このmongo shell と以下の間の通信でネットワーク圧縮を有効にします。

次の圧縮プログラムを指定できます。

  • Snappy

  • zlib (MongoDB 3.6 以降で利用可能)

  • zstd(MongoDB 4.2 以降で利用可能)

重要

両者がネットワーク圧縮を有効にしている場合、メッセージは圧縮されます。そうでなければ、この両者間のメッセージは非圧縮となります。

複数のコンプレッサーを指定する場合、通信イニシエーターだけでなく、コンプレッサーをリストする順序も重要になります。たとえば、mongosh が次のネットワーク コンプレッサー zlib,snappy を指定し、mongodsnappy,zlib を指定する場合、mongoshmongod の間のメッセージは zlib を使用します。

両者に共通のコンプレッサーが 1 つもなければ、両者間のメッセージは圧縮されません。例えば、mongosh ではネットワーク コンプレッサーとして zlib が指定され、mongod ではsnappy が指定されている場合、mongoshmongodの間のメッセージは圧縮されません。

--ipv6

IPv 6のサポートを有効にします。 mongoはデフォルトで IPv 6を無効にします。

IPv 経由で MongoDB6 クラスターに接続するには、 shell--ipv6mongo を起動するときに--host <mongod/mongos IPv6 address> と の両方を指定する必要があります。

mongodmongosはデフォルトで 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は使用できません。

--enableJavaScriptJIT

バージョン 4.0 の新機能

JavaScript エンジンの JIT コンパイラーを有効にします。

--disableJavaScriptJIT

バージョン4.0での変更: JavaScript エンジンの JIT コンパイラーはデフォルトで無効になりました。

JavaScript エンジンの JIT コンパイラーを無効にします。

--disableJavaScriptProtection

JavaScriptおよび 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-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 new MONGODB-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 でのみ使用できます。

注意

mongo は、TLS 1.1 + が利用可能なシステムで TLS 1.0暗号化のサポートを無効にします。

Tip

次を参照してください。

MongoDB のサポートの完全なドキュメントについては、 TLS/SSL 用に mongodmongos を設定してください

--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 の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--tlsCertificateKeyFile <filename>

バージョン 4.2の新機能

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

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

が x を表示した場合、 mongod / mongosは接続時に警告を記録します。 509証明書はmongod/mongosホスト システム時間から30日以内に期限切れになります。

TLS/SSL と MongoDB の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--tlsCertificateKeyFilePassword <value>

バージョン 4.2の新機能

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

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

PEM ファイル内の秘密キーが暗号化されており、 --tlsCertificateKeyFilePasswordオプションを指定しない場合は、 mongoはパスフレーズの入力を要求します。 詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。

TLS/SSL と MongoDB の詳細については、 mongodmongos の 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 の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--tlsCRLFile <filename>

バージョン 4.2 の新機能: MongoDB 4.0 以前では、 --sslCRLFileを参照してください。

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

TLS/SSL と MongoDB の詳細については、 mongodmongos の 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 の詳細については、 mongodmongos の 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 の詳細については、 mongodmongos の 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_0TLS1_1TLS1_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 を指定します。

重要

バージョン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 の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--sslPEMKeyFile <filename>

バージョン 4.2 から非推奨: 代わりに--tlsCertificateKeyFileを使用してください。

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

このオプションは、--ssl mongodmongosssl.CAFileオプションを使用して、ssl.allowConnectionsWithoutCertificates なしで が有効になっている または に接続する場合に必要です。

TLS/SSL と MongoDB の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--sslPEMKeyPassword <value>

バージョン 4.2 から非推奨: 代わりに--tlsCertificateKeyFilePasswordを使用してください。

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

PEM ファイル内の秘密キーが暗号化されており、 --sslPEMKeyPasswordオプションを指定しない場合は、 mongoはパスフレーズの入力を要求します。 詳細については、「 TLS/SSL 証明書のパスフレーズ 」を参照してください。

TLS/SSL と MongoDB の詳細については、 mongodmongos の 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 の詳細については、 mongodmongos の 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 の詳細については、 mongodmongos の 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 の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--sslAllowInvalidHostnames

バージョン 4.2 から非推奨: 代わりに--tlsAllowInvalidHostnamesを使用してください。

TLS/SSL 証明書のホスト名の検証を無効にします。証明書内のホスト名が指定されたホスト名と一致しない場合でも、 mongo MongoDB インスタンスに接続できるようにします。

TLS/SSL と MongoDB の詳細については、 mongodmongos の TLS/SSL 設定」および「クライアントの TLS/SSL 設定」を参照してください。

--sslDisabledProtocols <string>

バージョン 4.2 から非推奨: 代わりに--tlsDisabledProtocolsを使用してください。

指定した TLS プロトコルを無効にします。 このオプションは、次のプロトコルを認識します: TLS1_0TLS1_1TLS1_2 、およびバージョン4.0.4以降 (および3.6.9 )、 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 を有効にするには、--sslDisabledProtocolsnone を指定します。

バージョン3.6.5の新機能

--retryWrites

バージョン 3.6 の新機能

mongo shell のセッションでは、再試行可能な書込みをデフォルトで有効にします。

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

--awsAccessKeyId <string>

の Amazon Web ServicesアクセスキーList ReadAmazon 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は認証に関連するインタラクションを履歴ファイルに記録しませんauthenticatedb.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 を実行しているユーザーには読み取り権限が必要です。 の --norcmongoオプションは、ユーザーの ファイルのみを抑制します。.mongorc.js

Windows では、グローバルmongorc.js </etc/mongorc.js>%ProgramData%\MongoDBディレクトリに存在します。

/tmp/mongo_edit{<time_t>}.js
ファイルの編集時にmongoによって作成されます。 ファイルが存在する場合、 mongo1から10までの整数を時間値に追加して、一意のファイルの作成を試みます。
%TEMP%mongo_edit{<time_t>}.js
ファイルの編集時に Windows 上のmongo.exeによって作成されます。 ファイルが存在する場合、 mongo1から10までの整数を時間値に追加して、一意のファイルの作成を試みます。
EDITOR

edit shell コマンドで使用するエディターへのパスを指定します。 JavaScript 変数EDITOREDITORの値を上書きします。

HOME

が ファイルを読み取り、 ファイルを書き込むホームページ ディレクトリへのパスを指定します。mongo.mongorc.js.dbshell

HOMEDRIVE

Windows システムでは、 は、HOMEDRIVE 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 を終了する

Ctrl-D

文字の削除(または シェルmongo を終了)

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 を呼び出します。 その他のシナリオでは、次の例を検討してください。

認証と非標準ポートを使用してリモート ホスト上のデータベースに接続するには、次の形式を使用します。

mongo --username <user> --password --host <host> --port 28015

あるいは、次の短縮形式について考えてみます。

mongo -u <user> -p --host <host> --port 28015

<user><host>を状況に応じて適切な値に置き換え、必要に応じて--portを置き換えまたは省略します。

--passwordまたは-pコマンドライン オプションにパスワードを指定しない場合、 mongo shell はパスワードの入力を要求します。

バージョン 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://server.example.com/?username=allison"

mongo shell では、 usernameオプションで指定されたユーザーのパスワードの入力を自動的に求められます。

バージョン 4.4 で追加

MongoDB AtlasAmazon Web ServicesIAM の認証情報 経由での認証をサポートするように構成済みの クラスターに接続します。 stringmongoshellは、次のような への 接続 を提供します。

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_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-AWSauthentication 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'

shell セッションを開始する前に、 ~/.mongorc.jsファイルを評価せずに JavaScript ファイルを実行するには、次の形式を使用します。

mongo --shell --norc alternate-environment.js

コマンドラインで提供されるのではなくパスワードを要求される認証を使用して JavaScript ファイルを実行するには、次の形式を使用します。

mongo script-file.js -u <user> -p

Tip

以下も参照してください。

--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)"

戻る

mongos