Docs Menu
Docs Home
/
MongoDB データベース ツール

mongorestore

項目一覧

  • Synopsis
  • 構文
  • オプション
  • 詳細

このドキュメントは、mongorestore のバージョン 100.10.0 用です。

mongorestore プログラムは、mongodump によって作成されたバイナリのデータベース ダンプ、または標準入力からデータを読み込み、mongod または mongos インスタンスにロードします。

mongodump から生成された BSON ファイルは、復元元と同じかそれ以降のバージョンを実行中の MongoDB 配置に復元できます。ただし、新しいバージョンの配置へのファイルの復元は、配置のアップグレード方法としては推奨されていません。配置のアップグレード方法については、アップグレードのドキュメントを参照してください。

mongo shell ではなく、システム コマンド ラインから mongorestore を実行します。

Tip

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

mongodump、これは対応するバイナリ データのエクスポート機能を提供します。

MongoDB は、同じコレクションに対して複数の mongorestore プログラムを同時に実行することをサポートしていません。

MongoDB データベースツールを使用して、セルフホスト型配置から MongoDB Atlas へ移行できます。MongoDB Atlas は、MongoDB をクラウドに配置するためのフルマネージド サービスです。詳細については、「mongorestore でのシード処理」を参照してください。

MongoDB Atlas への移行方法については、「データの移行またはインポート」を参照してください。

mongorestore 構文:

mongorestore <options> <connection-string> <directory or file to restore>

たとえば、dump ディレクトリから ポート 27017 で実行されている mongod のローカル インスタンスに復元するには、次の手順に従います。

mongorestore dump/

mongorestore は、dump/ ディレクトリから復元する際、必要に応じてデータベースとコレクションを作成し、進行状況をログに記録します。

2019-07-08T14:37:38.942-0400 preparing collections to restore from
2019-07-08T14:37:38.944-0400 reading metadata for test.bakesales from dump/test/bakesales.metadata.json
2019-07-08T14:37:38.944-0400 reading metadata for test.salaries from dump/test/salaries.metadata.json
2019-07-08T14:37:38.976-0400 restoring test.salaries from dump/test/salaries.bson
2019-07-08T14:37:38.985-0400 no indexes to restore
2019-07-08T14:37:38.985-0400 finished restoring test.salaries (10 documents, 0 failures)
2019-07-08T14:37:39.009-0400 restoring test.bakesales from dump/test/bakesales.bson
2019-07-08T14:37:39.011-0400 restoring indexes for collection test.bakesales from metadata
2019-07-08T14:37:39.118-0400 finished restoring test.bakesales (21 documents, 0 failures)
2019-07-08T14:37:39.118-0400 restoring users from dump/admin/system.users.bson
2019-07-08T14:37:39.163-0400 restoring roles from dump/admin/system.roles.bson
2019-07-08T14:37:39.249-0400 31 document(s) restored successfully. 0 document(s) failed to restore.

dump/ ディレクトリから特定のコレクション(複数可)を復元することもできます。次の操作の例では、dump/ ディレクトリ内の対応するデータファイルから 1 つのコレクションを復元します。

mongorestore --nsInclude=test.purchaseorders dump/

dump/ ディレクトリに、指定された名前空間に対応するデータファイルが含まれていない場合、データは復元されません。次の例では、dump/ ディレクトリに対応するデータがないコレクション名前空間が指定されています。

mongorestore --nsInclude=foo.bar dump/

mongorestore では、次のメッセージが出力されます。

2019-07-08T14:38:15.142-0400 preparing collections to restore from
2019-07-08T14:38:15.142-0400 0 document(s) restored successfully. 0 document(s) failed to restore.

その他の例については、「mongorestore の例」を参照してください。

--help

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

--verbose, -v

標準出力またはログファイルに返される内部レポートの量が増えます。-v フォームでの冗長性を高めるには、オプションを複数回含めてください(例: -vvvvv)。

--quiet

出力量を制限する quiet モードで mongorestore を実行します。

このオプションにより次の項目が抑制されます。

  • データベースコマンドからの出力

  • レプリケーション アクティビティ

  • 接続を受け付けたイベント

  • 接続を終了したイベント

--version

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

--config=<filename>

バージョン 100.3.0 の新機能

次のオプションの機密値を含む YAML 構成ファイルへのフル パスを mongorestore に指定します。

これは、mongorestore にパスワードを指定するのに、パスワード プロンプトを使用して指定する以外で推奨される方法です。

構成ファイルは以下の形式をとります。

password: <password>
uri: mongodb://mongodb0.example.com:27017
sslPEMKeyPassword: <password>

password: フィールドにパスワードを指定し、競合するパスワードを含む接続文字列を uri: フィールドに指定すると、エラーが発生します。

このファイルは、必ず適切なファイルシステム権限で保護してください。

注意

--config で構成ファイルを指定し、かつ mongorestore--password--uri または --sslPEMKeyPassword オプションも使用する場合、各コマンドライン オプションによって構成ファイルの対応オプションが上書きされます。

--uri=<connectionString>

MongoDB 配置の解決可能な URI 接続文字列 を引用符で囲んで指定します。

--uri="mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]"

mongorestore のバージョン 100.0 以降、接続文字列は、--uri オプションを使用せずに、位置パラメータとして入力することもできます。

mongorestore mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

接続文字列は、位置指定パラメータとして mongodb:// または mongodb+srv:// で始まっている限り、コマンドラインの任意の点で指定できます。以下に例を挙げます。

mongorestore --username joe --password secret1 mongodb://mongodb0.example.com:27017 --ssl

入力できる接続文字列は 1 つのみです。複数の値を含めようとすると、--uri オプションを使用する場合でも、位置引数として使用する場合でも、エラーになります。

接続文字列のコンポーネントの詳細については、「接続文字列 URI 形式」ドキュメントを参照してください。

注意

connection string 内の一部のコンポーネントは、--username や --password など、独自の明示的コマンドライン オプションを使用して指定することもできます。明示的オプションを使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

注意

mongorestore を Ubuntu 18.04 で使用する場合、(mongodb+srv:// 形式で)SRV 接続文字列--uri オプションと併用する場合、cannot unmarshal DNS というエラー メッセージが表示されることがあります。その場合は、次のいずれかのオプションを代わりに使用します。

警告

一部のシステムでは、--uri オプションで接続文字列に設定されたパスワードが、他のユーザーによって呼び出される可能性のある ps などのシステム ステータス プログラムに表示される場合があります。そのため、次の代替策を検討しましょう。

  • 接続文字列のパスワードを省略し、インタラクティブなパスワード プロンプトを受け取る

  • --config オプションを使用して、パスワードを含む構成ファイルを指定します。

--host=<hostname><:port>, -h=<hostname><:port>

デフォルト: localhost:27017

MongoDB 配置の解決可能なホスト名を指定します。デフォルトでは、mongorestore によってポート番号 27017 のローカルホストで実行されている MongoDB インスタンスに接続しようとします。

レプリカセットに接続するには、replSetName とセットノードのシードリストを次のように指定します。

--host=<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>

レプリカセット リスト形式を指定する場合、mongorestore は常にプライマリに接続します。

また、レプリカセットの任意の 1 つのノードに接続するには、そのノードのみのホストとポートを指定します。

--host=<hostname1><:port>

IPv6 を使用し、<address>:<port> 形式を使用する場合は、アドレスとポートの組み合わせの一部を括弧で囲む必要があります(例: [<address>])。

あるいは、URI connection string でホスト名を直接指定することもできます。--host を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--port=<port>

デフォルト: 27017

MongoDB インスタンスがクライアント接続のためにリッスンする TCP ポートを指定します。

あるいは、URI connection string でポートを直接指定することもできます。--port を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--ssl

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

あるいは、URI connection string で TLS/SSL サポートを直接構成することもできます。--ssl を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslCAFile=<filename>

証明書認証機関からのルート証明書チェーンを含む .pem ファイルを指定します。相対パスまたは絶対パスを使用して .pem ファイルのファイル名を指定します。

あるいは、URI connection string.pem ファイルを直接指定することもできます。接続文字列を提供し、さらに --sslCAFile を使用中に競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslPEMKeyFile=<filename>

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

このオプションが必要になるのは、--ssl オプションを使用して mongod または mongos に接続し、かつこれらで allowConnectionsWithoutCertificates. がない状態で CAFile が有効化されている場合です。

あるいは、URI connection string.pem ファイルを直接指定することもできます。接続文字列を提供し、さらに --sslPEMKeyFile を使用中に競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslPEMKeyPassword=<value>

証明書キーファイル(例: --sslPEMKeyFile)を復号化するためのパスワードを指定します。--sslPEMKeyPassword オプションは、証明書キーファイルが暗号化されている場合にのみ使用してください。いずれの場合も、mongorestore はログおよびレポート出力でパスワードを非表示にします。

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

あるいは、URI connection string でパスワードを直接指定することもできます。--sslPEMKeyPassword を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

警告

一部のシステムでは、--sslPEMKeyPassword オプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のある ps などのシステム ステータス プログラムに表示される場合があります。代わりに --config オプションを使用して、パスワードを含む構成ファイルを指定することを検討してください。

--sslCRLFile=<filename>

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

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslAllowInvalidCertificates

サーバー証明書の検証チェックをバイパスし、無効な証明書を使用できるようにします。allowInvalidCertificates 設定を使用すると、MongoDB では無効な証明書の使用に対する警告としてログに記録されます。

警告

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

サーバー証明書を検証せずに mongod または mongos インスタンスに接続すると、潜在的なセキュリティ上のリスクが発生します。TLS/SSL 証明書のホスト名の検証を無効にするだけの場合は、--sslAllowInvalidHostnames を参照してください。

あるいは、URI connection string で証明書の検証を直接無効にすることもできます。接続文字列を提供し、さらに --sslAllowInvalidCertificates を使用して競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

--sslAllowInvalidHostnames

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

あるいは、URI connection string でホスト名の検証を直接無効にすることもできます。--sslAllowInvalidHostnames を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

TLS/SSL と MongoDB の詳細については、「TLS/SSL 用に mongod と mongos を構成する」と「クライアントの TLS/SSL 構成」を参照してください。

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

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

あるいは、URI connection string でユーザー名を直接指定することもできます。--username を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

MONGODB-AWS authentication mechanism を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS アクセス キー ID を指定できます。

それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。

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

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

ユーザーにパスワードの入力を求めるには、--username オプションを --password なしで渡すか、--password="" のように --password の値に空の文字列を指定します。

あるいは、URI connection string でパスワードを直接指定することもできます。--password を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

MONGODB-AWS authentication mechanism を使用して MongoDB Atlas クラスターに接続する場合は、次の場所で AWS シークレットアクセスキーを指定できます。

  • このフィールド

  • connection string、または

  • AWS_SECRET_ACCESS_KEY 環境変数。

それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。

警告

一部のシステムでは、--password オプションを使用して直接提供されたパスワードは、他のユーザーによって呼び出される可能性のある ps などのシステム ステータス プログラムに表示される場合があります。そのため、次の代替策を検討しましょう。

  • --password オプションを省略し、インタラクティブなパスワード プロンプトを表示する

  • --config オプションを使用して、パスワードを含む構成ファイルを指定します。

--awsSessionToken=<AWS Session Token>

MONGODB-AWS authentication mechanism を使用して MongoDB Atlas クラスターに接続し、AWS アクセスキー ID とシークレットアクセスキーに加えてセッション トークンを使用する場合は、次の場所に AWS セッション トークンを指定できます。

それぞれの例については、「AWS IAM 認証情報を使用した MongoDB Atlas クラスターへの接続」を参照してください。

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

--authenticationDatabase=<dbname>

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

GSSAPI(Kerberos)、PLAIN(LDAP SASL)、またはMONGODB-AWS authentication mechanisms を使用する場合は、--authenticationDatabase$externalに設定する必要があります。

あるいは、URI connection string で認証データベースを直接指定することもできます。--authenticationDatabase を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--authenticationMechanism=<name>

デフォルト: SCRAM-SHA-1

mongorestore インスタンスがmongod または mongos への認証に使用する認証メカニズムを指定します。

バージョン 100.1.0 での変更: バージョン 100.1.0 以降、MongoDB Atlas クラスターへの接続時に MONGODB-AWS 認証メカニズムのサポートが mongorestore に追加されます。

説明
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 クラスターに接続する」を参照してください。

バージョン 100.1.0 の新機能

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

あるいは、URI connection string で認証メカニズムを直接指定することもできます。--authenticationMechanism を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--gssapiServiceName=<serviceName>

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

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

--gssapiHostName=<hostname>

GSSAPI/Kerberos を使用してサービスのホスト名を指定します。マシンのホスト名が DNS で解決されたホスト名と一致しない場合にのみ必要となります。

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

--db=<database>, -d=<database>

BSON ファイルからデータを復元するときに、mongorestore にデータの復元のデータベースを指定します。データベースが存在しない場合は、mongorestore によりデータベースが作成されます。次の例では、salaries コレクションを reporting データベースに復元しています。

mongorestore --db=reporting dump/test/salaries.bson

--db を指定しない場合、mongorestore はデータファイルからデータベース名を読み取ります。

ディレクトリまたはアーカイブ ファイルから復元する場合、--db--collection オプションの使用は推奨されません。代わりに、アーカイブまたはディレクトリから復元するには、「--nsInclude」を参照してください。

あるいは、URI connection string でデータベースを直接指定することもできます。--db を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--collection=<collection>, -c=<collection>

BSON ファイルからの復元時にデータを読み込む mongorestore の復元先コレクション名を指定します。--collection を指定しない場合、mongorestore は入力ファイル名からコレクション名を取得します。入力ファイルに拡張子がある場合、コレクション名ではその拡張子は省略されます。

mongorestore --db=reporting --collection=employeesalaries dump/test/salaries.bson

ディレクトリまたはアーカイブ ファイルから復元する場合、--db--collection オプションの使用は推奨されません。代わりに、アーカイブまたはディレクトリから復元するには、「--nsInclude」を参照してください。

--nsExclude=<namespace pattern>

名前空間パターン(例: "test.myCollection""reporting.*""dept*.bar")を指定して、一致する名前空間を復元対象から除外します。このパターンでは、ワイルドカードとしてアスタリスク * を使用できます。ワイルド カード パターンの例については、「ワイルドカードを使用したコレクションの復元」を参照してください。

--nsExclude を複数回指定回指定することで、複数の名前空間パターンを除外することができます。

--nsInclude=<namespace pattern>

名前空間パターン(例: "test.myCollection""reporting.*""dept*.bar")を指定して、パターンに一致する名前空間のみを復元します。このパターンでは、ワイルドカードとしてアスタリスク * を使用できます。ワイルド カード パターンの例については、「ワイルドカードを使用したコレクションの復元」を参照してください。

複数の名前空間パターンを含めるには、--nsInclude を複数回指定できます。

ソース ディレクトリまたはファイル(つまり、データの復元元のディレクトリ/ファイル)に名前空間パターンと一致するデータファイルが含まれていない場合、データは復元されません。

コレクション名に非 ASCII 文字が含まれている場合、mongodump は、対応するファイル名をパーセント エンコードされた名前で出力します。ただし、これらのコレクションを復元する場合は、エンコードされた名前を使用しないでください。代わりに、非 ASCII 文字を含む名前空間を使用してください。

たとえば、ダンプ ディレクトリに dump/test/caf%C3%A9s.bson が含まれている場合は、--nsInclude "test.cafés" と指定します。

--nsFrom=<namespace pattern>

--nsTo を使用して、復元操作中に名前空間の名前を変更します。--nsFrom はダンプファイル内のコレクションを指定し、--nsTo は復元されたデータベースで使用する名前を指定します。

--nsFrom名前空間パターンを引数として受け入れます。名前空間パターンにより --nsFrom は指定パターンに一致する任意の名前空間を参照できます。mongorestore は、名前空間パターンの最小の有効な出現と一致します。

単純な置換の場合は、ワイルド カードとしてアスタリスク(*)を使用します。すべてのリテラルのアスタリスクとバックスラッシュを、バックスラッシュでエスケープします。置換は一致に対して順次に対応します。--nsFrom の各アスタリスクは --nsTo のアスタリスクに対応し、--nsFrom の最初のアスタリスクは nsTo の最初のアスタリスクと一致する必要があります。

より複雑な置き換えでは、使用する「ワイルドカード」変数をドル記号で区切ります。このワイルドカードを使った複雑な置き換えの例については、「復元中のコレクションの名前空間の変更」を参照してください。

アスタリスクによる置換とは異なり、ドル記号で区切られたワイルド カードの置換は順次対応する必要はありません

--nsTo=<namespace pattern>

--nsFrom を使用して、復元操作中に名前空間の名前を変更します。--nsTo は復元されたデータベースで使用する新しいコレクション名を、--nsFrom はダンプファイル内の名前を指定します。

--nsTo名前空間パターンを引数として受け入れます。名前空間パターンにより --nsTo は指定パターンに一致する任意の名前空間を参照できます。mongorestore は、名前空間パターンの最小の有効な出現と一致します。

単純な置換の場合は、ワイルド カードとしてアスタリスク(*)を使用します。すべてのリテラルのアスタリスクとバックスラッシュを、バックスラッシュでエスケープします。置換は一致に対して順次に対応します。--nsFrom の各アスタリスクは --nsTo のアスタリスクに対応し、--nsFrom の最初のアスタリスクは nsTo の最初のアスタリスクと一致する必要があります。

より複雑な置き換えでは、使用する「ワイルドカード」変数をドル記号で区切ります。このワイルドカードを使った複雑な置き換えの例については、「復元中のコレクションの名前空間の変更」を参照してください。

アスタリスクによる置換とは異なり、ドル記号で区切られたワイルド カードの置換は順次対応する必要はありません

--objcheck

クライアントからのすべてのリクエストについて、受信時にmongorestore に検証を強制して、クライアントがデータベースに無効なドキュメントを挿入しないようにします。サブドキュメントのネストが深いオブジェクトの場合、--objcheck によってパフォーマンスに若干影響が出る可能性があります。

--drop

ダンプされたバックアップからコレクションを復元する前に、復元先のデータベースからコレクションを削除します。バックアップに含まれていないコレクションは、--drop によって削除されません。

復元に admin データベースが含まれている場合、mongorestore--drop を使用してすべてのユーザー認証情報を削除し、ダンプファイルで定義されたユーザーに置き換えます。そのため、authorization が有効なシステムでは、mongorestore は既存のユーザーおよびダンプファイルで定義されたユーザーの両方に対して認証できる必要があります。mongorestore がダンプファイルで定義されたユーザーに対して認証できない場合、復元プロセスは失敗し、空のデータベースが残ります。

コレクションが復元過程で削除、再作成される場合、新たに作成されるコレクションの UUID は、--drop--preserveUUID と併用されない限り、異なるものになります。

--preserveUUID

復元の一環で削除、再作成されたコレクションに対して新しい UUID が作成されるのではなく、復元されたコレクションには復元データの UUID が使用されます。

--preserveUUID を使用するには、--drop オプションも含める必要があります。

--dryRun

データを実際にインポートせずに mongorestore を実行し、mongorestore サマリー情報を返します。より詳細なサマリー情報を生成するには、--verbose を一緒に使用します。

--oplogReplay

データベース ダンプの復元後に、oplog.bson ファイルから oplog エントリを再生します。

復元時に oplog.bson ファイルから oplog エントリを適用するには、mongorestore --oplogReplay を使用します。データが最新で、ダンプ操作中に発生したすべての書き込みが含まれていることを確認するには、mongodump --oplogmongorestore --oplogReplay と併用します。

mongorestore 次のロケーションで BSON ファイルの有効なソースの検索も使用します。

oplog.bson ファイルがダンプ ディレクトリの最上位にあり、かつパスが --oplogFile で指定されている場合には、mongorestore からエラーが返されます。

ダンプ ディレクトリの最上位に oplog.bson ファイルがある場合、mongorestore は、そのファイルを oplog として復元します。dump/local ディレクトリに bson ファイルもある場合、mongorestore は、通常のコレクションと同様にそれらを復元します。

--oplogFile を使用して oplog ファイルを指定すると、mongorestore ではそのファイルは oplog として復元されます。dump/local ディレクトリに bson ファイルもある場合、これらのファイルは mongorestore で通常のコレクションと同様に復元されます。

oplog replay 出力の次のメッセージは、oplog replay の前の挿入数を示しています。リプレイ中に行われた挿入は含まれません。

0 document(s) restored successfully. 0 document(s) failed to
restore.

--oplogReplay の例については、「Oplog ファイルを使用したデータのバックアップと復元」を参照してください。

注意

mongorestore を使用して --oplogReplay でレプリカセットを復元する場合、mongodump --oplog を使用して作成されたレプリカセットノードの完全なダンプを復元する必要があります。次のオプションのいずれかを使用して復元するデータを制限する場合、mongorestore--oplogReplay は併用できません。

Tip

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

--oplogLimit=<timestamp>

mongorestoreoplog エントリを <timestamp> 以降のタイムスタンプで適用しないようにします。<timestamp>の値は <time_t>:<ordinal> の形式で指定します。ここで <time_t> は UNIX エポック後の秒数、<ordinal> は指定秒数内に発生した oplog 内の操作カウンターを示します。

警告

oplogLimit の使用には注意が必要です。適用する oplog エントリを手動で指定すると、復元データの破損や不整合につながる恐れがあります。

--oplogLimit--oplogReplay オプションと組み合わせて使用する必要があります。

--oplogFile=<path>

復元用の oplog データを含む oplog ファイルへのパスを指定します。--oplogReplay と併用します。

--oplogFile を指定した場合にダンプ ディレクトリの最上位に oplog.bsonファイルがあると、mongorestore からエラーが返されます。

警告

oplogFile の使用には注意が必要です。適用する oplog エントリを手動で指定すると、復元データの破損や不整合につながる恐れがあります。

--convertLegacyIndexes

バージョン100.0.0の新機能

対応する mongodump 出力で指定された無効なインデックス オプションをすべて排除し、レガシー インデックス キーの値を有効な値に書き換えます。

  • 無効なインデックス オプションとは、createIndexes コマンドの有効フィールドとしてリストされていないインデックス専用のオプションです。たとえば、namecollation は有効ですが、無作為の custom_field は有効ではありません。--convertLegacyIndexes が指定されている場合、見つかった無効なインデックス オプションはすべて削除されます。

  • レガシー インデックス キー値とは、サポートされなくなったインデックス タイプの値です。たとえば、1-1 は有効なインデックス キー値ですが、0 または空の文字列はレガシー値です。--convertLegacyIndexes が指定されている場合、見つかったレガシー インデックス キー値は 1 に書き換えられます。空でない文字列の値は書き換えられません。

--convertLegacyIndexes オプションが指定されていない場合、無効なインデックス オプションまたはレガシー インデックス キーの値が存在すると、インデックス構築が失敗する可能性があります。

--noIndexRestore オプションが mongorestore に指定されている場合、--convertLegacyIndexes オプションは無視されます。

--keepIndexVersion

復元プロセス中に mongorestore がインデックスを最新バージョンにアップグレードするのを防ぎます。

--noIndexRestore

対応する mongodump 出力で指定されているように、mongorestore がインデックスを復元および構築するのを防ぎます。

--fixDottedHashIndex

ドット表記されたフィールドのすべてのハッシュインデックスを、ターゲットデータベースの 1 つのフィールドの昇順インデックスとして作成します。

--noOptionsRestore

mongorestore が復元されたコレクションに対して collMod データベースコマンドによって指定されたコレクション オプションを設定するのを防ぎます。

--restoreDbUsersAndRoles

指定されたデータベースのユーザーとロールの定義を復元します。詳細については、system.roles コレクションおよび system.users コレクションを参照してください。

注意

--restoreDbUsersAndRoles オプションは、admin データベースに --db オプションを指定すると使用できなくなり、指定を試みるとエラーが発生します。--db adminmongorestore を指定して admin データベースを復元すると、すべてのユーザーとロールは自動的に復元されます。

--writeConcern=<document>

デフォルト: 過半数

mongorestore で実行される各書き込み操作の書き込み保証(write concern)レベルを指定します。

w オプション適用のドキュメントとしての書込み保証(write concern)の指定

--writeConcern="{w:'majority'}"

書き込み保証が --uri connection string にも含まれている場合、URI文字列で指定された書き込み保証はコマンドライン --writeConcern で上書きされます。

--maintainInsertionOrder

デフォルト: false

指定した場合、mongorestore は、入力ソースに出現する順序でドキュメントを挿入します。つまり、一括書き込み (write) バッチの順と、バッチ内のドキュメント順の両方が維持されます。

--maintainInsertionOrder を指定することで --stopOnError も有効になり、numInsertionWorkersPerCollection は 1 に設定されます。

指定されていない場合、mongorestore が、無作為な順序で挿入を実行する可能性があります。

--numParallelCollections=<int>, -j=<int>

デフォルト: 4

mongorestore が並行して復元すべきコレクションの数。

単一コレクションの復元時に、-j を指定すると、-j--numParallelCollections ではなく --numInsertionWorkersPerCollection オプションにマッピングされます。

--numInsertionWorkersPerCollection=<int>

デフォルト: 1

コレクションごとに同時に実行する挿入ワーカーの数を指定します。

大規模なインポートの場合、挿入ワーカーの数を増やすとインポートが迅速化する可能性があります。

--stopOnError

エラーに遭遇すると、mongorestore は復元を中止するよう強制します。

mongorestore のデフォルト設定では、キーの重複とドキュメント検証エラーが発生しても復元処理は続行されます。こうしたエラー発生時にプログラムが停止するようにするには、--stopOnError を指定します。

--bypassDocumentValidation

操作中にドキュメントの検証をバイパスするよう mongorestore を有効にします。これにより、検証要件を満たさないドキュメントを挿入できるようになります。このオプションは、Queryable Encryption が有効なコレクションを復元する場合に必要です。

--gzip

以下によって作成された圧縮ファイルまたはデータ ストリームから復元します。 mongodump --gzip

圧縮ファイルを含むダンプ ディレクトリから復元するには、--gzip オプションを指定して mongorestore を実行します。

圧縮されたアーカイブ ファイルから復元するには、--gzip オプションと --archive オプションの両方を指定してmongorestore を実行します。

注意

--nsFrom オプションと --nsTo オプションを --gzip オプションとともに使用して、復元するコレクションの名前空間を変更できます。

--archive=<file>

指定されたアーカイブ ファイルから復元します。ファイルが指定されていない場合は、標準入力(stdin)から復元します。

  • アーカイブ ファイルから復元するには、--archive オプションとアーカイブ ファイル名を指定して mongorestore を実行します。

  • 標準入力から復元するには、--archive オプションを指定して mongorestore を実行しますが、ファイル名は省略します。

注意

  • --archive オプションを --dir オプションと併用することはできません。

  • --archive オプションを <path> パラメーターと併用する場合、mongorestore では <path>パラメーターは無視されます。

  • mongorestore では、標準入力から単一のコレクションを復元するための位置指定の - パラメータも引き続きサポートされます。

<path>

データを復元するディレクトリ パスまたは BSON ファイル名です。

<path> 引数とダンプ ディレクトリも指定する--dir オプションの両方を mongorestore に指定することはできません。

--dir=string

ダンプ ディレクトリを指定します。

  • --dir オプションとダンプ ディレクトリも指定する<path> 引数の両方を mongorestore に指定することはできません。

  • --archive オプションを --dir オプションと一緒に使用することはできません。

戻る