AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

mongodump

mongodump は、データベース コンテンツのバイナリ エクスポート作成用ユーティリティです。mongodump のデータのエクスポート元は次のとおりです。

  • スタンドアロン配置

  • レプリカセット

  • シャーディングされたクラスター

  • Flex クラスター

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

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

mongodump は、 インスタンスとmongod mongosインスタンスに接続できます。

mongodump から生成された BSON ファイルは、復元元と同じメジャー バージョンまたは機能の互換性バージョンを実行している MongoDB 配置に復元できます。

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

Tip

mongorestore を使用すると、mongodump からエクスポートされたデータをインポートできます。

ストレージコストを削減するために古いデータをアーカイブする場合は、Online Archive(MongoDB Atlas)の使用を検討してください。Online Archive は、アクセス頻度の低いデータを完全管理の S3 バケットに自動的にアーカイブするコスト効果の高いデータ階層化ツールです。

mongodump 次のアイテムをダンプします。

  • コレクション ドキュメント、メタデータ、オプション。

  • インデックスの定義。

  • mongodump--oplogオプションを指定して実行した場合に、エクスポート中に発生する書き込み。

mongodump は、ディレクトリまたはバイナリ アーカイブ ファイルにデータをダンプします。

重要

Queryable Encryptionまたはクライアント側フィールドレベル暗号化(CSFLE)を使用するコレクションでは、mongodump は使用できません。

以下は、mongodump ディレクトリのダンプ構造とファイルの例です。

dump
├── easternSalesDatabase
│ ├── sales.bson
│ ├── sales.metadata.json
│ └── salesByMonthView.metadata.json
├── westernSalesDatabase
│ ├── sales.bson
│ ├── sales.metadata.json
│ └── salesByMonthView.metadata.json
└── oplog.bson

mongodump はディレクトリ ダンプ用に次のアイテムを作成します。

  • dumpデフォルト名が のルートディレクトリ。mongodump--out オプションを使用して名前を設定できます。

  • 各データベースのルート ディレクトリのサブディレクトリ。たとえば、データベース名が easternSalesDatabase の場合は、サブディレクトリ名も easternSalesDatabase になります。

  • 各コレクションのドキュメントを含む BSON ファイル。たとえば、コレクション名が sales の場合、BSON ファイル名は sales.bson になります。

  • 各データベース ディレクトリ内の各コレクションのメタデータ JSON ファイル。例として、メタデータ sales.metadata.json ファイルが挙げられます。ファイルには、エクスポートされたコレクションのメタデータ、オプション、インデックスが収録されているドキュメントが含まれます。

  • 各ビューのメタデータ JSON ファイル。例として、メタデータ salesByMonthView.metadata.json ファイルが挙げられます。BSON ファイルはビューに含まれません。

  • ルートディレクトリに配置される任意のoplogoplog.bson mongodumpファイル。 の実行中に発生した書き込み操作が含まれます。oplog.bson ファイルを出力するには、mongodump--oplog オプションを使用します。

mongodump--gzipオプションを使用する場合、 BSONファイルとJSONメタデータファイルは圧縮されます。エクスポートされる圧縮ファイル名の末尾には、bson.gz とmetadata.json.gz が付きます。

バイナリ アーカイブファイルにデータをダンプするには、mongodump--archive mongodumpオプションを使用します。 はアーカイブされたデータを含むバイナリファイルを作成します。

mongodump--oplogオプションを使用して を実行する場合、 アーカイブにはoplogエントリが含まれます。

mongodump 構文:

mongodump <options> <connection-string>

ポート 27017 で実行されているローカル MongoDB インスタンスに接続し、デフォルト設定を使用してコンテンツをエクスポートするには、mongodump をコマンドライン オプションなしで実行します。

mongodump

MongoDB インスタンスのホストおよび/またはポートを指定するには、次のようにします。

  • オプションでホスト名とポートを指定します。--uri connection string

    mongodump --uri="mongodb://mongodb0.example.com:27017" [additional options]
  • オプションでホスト名とポートを指定します。--host

    mongodump --host="mongodb0.example.com:27017" [additional options]
  • と--host--port オプションでホスト名とポートを次のように指定します。

    mongodump --host="mongodb0.example.com" --port=27017 [additional options]

レプリカセットに接続してデータをエクスポートするには、次のようにします。

  • オプションでレプリカセットの名前とノードを指定します。--uri connection string

    mongodump --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myReplicaSetName" [additional options]
  • オプションでレプリカセットの名前とノードを指定します。--host

    mongodump --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com" [additional options]

mongodump のデフォルト設定では、レプリカセットのプライマリからデータが読み取られます。このデフォルト設定を上書きするには、読み込み設定(read preference)を次のように変更します。

  • 読み込み設定 (read preference)は--uri connection string オプションで指定できます。

    mongodump --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myReplicaSetName&readPreference=secondary" [additional options]

    読み込み設定(読み込み設定 (read preference) )タグを指定する場合、readPreferenceTags オプションを含めます。

    mongodump --uri="mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myReplicaSetName&readPreference=secondary&readPreferenceTags=region:east" [additional options]
  • 読み込み設定 (read preference) は --readPreference コマンドライン オプションを使用して指定することができます。コマンドライン オプションは、読み込み設定 (read preference) モードのみを指定する場合、string を取ります。

    mongodump --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017" --readPreference=secondary [additional options]

    また、コマンドライン オプションは、引用符で囲まれたドキュメント '{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds:<num>}' を受け取り、モード、任意の読み込み設定 (read preference) タグ セット、任意の maxStalenessSeconds を次のように指定できます。

    mongodump --host="myReplicaSetName/mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017" --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ]}' [additional options]

注意

データの不整合を回避するには、 mongodumpを実行するときにシャーディングされたクラスターで次のアクションを一時停止します。

  • クロスシャード トランザクション

  • データ定義言語操作(コレクションを作成および変更する操作)

  • チャンク バランシング

バランサー を停止するには、sh.stopBalancer() メソッドを使用します。

シャーディングされたクラスターに接続してデータをエクスポートするには、次の操作を実行します。

  • --uri connection string オプションで mongos インスタンスのホスト名を指定します。

    mongodump --uri="mongodb://mongos0.example.com:27017" [additional options]
  • 次のように、mongos オプションで--host インスタンスのホスト名とポートを指定します。

    mongodump --host="mongos0.example.com:27017" [additional options]

mongodump のデフォルト設定では、シャード レプリカセットのプライマリからデータが読み取られます。このデフォルト設定を上書きするには、読み込み設定(read preference)を次のように変更します。

  • 読み込み設定 (read preference)は--uri connection string オプションで指定できます。

    mongodump --uri="mongodb://mongos0.example.com:27017/?readPreference=secondary" [additional options]

    読み込み設定(読み込み設定 (read preference) )タグを指定する場合、readPreferenceTags オプションを含めます。

    mongodump --uri="mongodb://mongos0.example.com:27017/?readPreference=secondary&readPreferenceTags=region:east" [additional options]
  • 読み込み設定 (read preference)は、--readPreference コマンドライン オプションを使用して指定できます。読み込み設定 (read preference)モードのみを指定する場合、コマンドライン オプションでは次の string が使用されます。

    mongodump --host="mongos0.example.com:27017" --readPreference=secondary [additional options]

    また、コマンドライン オプションは、引用符で囲まれたドキュメント '{ mode: <mode>, tagSets: [ <tag1>, ... ], maxStalenessSeconds: <num>}' を受け取り、モード、任意の読み込み設定 (read preference) タグ セット、任意の maxStalenessSeconds を次のように指定できます。

    mongodump --host="mongos0.example.com:27017" --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ]}' [additional options]
--help

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

--verbose, -v

標準出力またはログファイルに対して返される内部レポートの量を増やします。オプションを複数回含めることで、-v フォームで詳細度を高めます。例: -vvvvv。

--quiet

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

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

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

  • 接続を受け付けたイベントと接続を終了したイベント

  • エラーメッセージを含むすべてのログ(オプションの解析時に発生するログを除く)

--version

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

--config=<filename>

バージョン100.3.0の新機能。

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

これは、mongodump にパスワードを指定する際に、パスワード プロンプトを使用して指定する以外で推奨される方法です。ファイル内の引数は任意に組み合わせて使用することができます。

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

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

uri を指定せずに password オプションを指定する場合は、mongodump コマンドラインオプションを使用して、--username や --host など、接続文字列の他のコンポーネントを指定できます。

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

重要

--config オプションを使用する際には、次の制限事項と動作にご注意ください。

  • passwordフィールドを指定し、競合するパスワードを含む接続文字列をuriフィールドに指定した場合、mongorestoreはエラーをスローします。

  • --config を使用して構成ファイルを指定し、かつ --password、--uri、または --sslPEMKeyPassword mongodumpコマンドラインオプションも使用している場合、コマンドラインオプションは対応する構成ファイルオプションを上書きします。

--uri=<connectionString>

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

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

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

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

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

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

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

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

注意

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

注意

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

警告

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

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

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

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

デフォルト: localhost:27017

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

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

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

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

また、レプリカセットの任意の 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 を使用中に接続文字列を入力し、競合する情報を指定すると、エラーが発生します。

--sslCAFile=<filename>

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

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

--sslPEMKeyFile=<filename>

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

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

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

--sslPEMKeyPassword=<value>

証明書キー ファイルの複合化用パスワード(--sslPEMKeyFile)を指定します。証明書キー ファイルが暗号化されている場合にのみ、`--sslPEMKeyPassword オプションを使用します。いずれの場合も、mongodump ではすべてのログとレポート出力でパスワードが非表示になります。

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

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

警告

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

--sslCRLFile=<filename>

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

--sslAllowInvalidCertificates

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

警告

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

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

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

--sslAllowInvalidHostnames

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

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

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

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

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

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

  • このフィールド

  • connection string、または

  • AWS_ACCESS_KEY_ID 環境変数。

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

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

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

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

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

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

  • このフィールド

  • connection string、または

  • AWS_SECRET_ACCESS_KEY 環境変数。

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

警告

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

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

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

--awsSessionToken=<AWS Session Token>

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

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

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

--authenticationDatabase=<dbname>

指定済みの --username <mongodump --username> が作成された認証データベースを指定します。認証データベースを参照してください。

認証データベースを指定しない場合、mongodump ではエクスポート対象として指定されたデータベースがユーザー認証情報を保持していると想定されます。

認証データベースまたはエクスポートするデータベースを指定しない場合、mongodump では admin データベースがユーザー認証情報の格納先であると想定されます。

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

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

--authenticationMechanism=<name>

デフォルト: SCRAM-SHA-1

mongodump インスタンスが認証に使用する認証メカニズムとして、mongod または mongos を指定します。

バージョン 100.1.0 での変更:

バージョン 100.1.0 以降、mongodump は MongoDB Atlas クラスターに接続する際、MONGODB-AWS 認証メカニズムのサポートを追加します。

値
説明

RFC5802 標準の Salted Challenge Response Authentication Mechanism(SHA-1 ハッシュ関数を使用)。

RFC7677 標準の Salted Challenge Response Authentication Mechanism(SHA-256 ハッシュ関数を使用)。

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

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

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

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

--gssapiHostName

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

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

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

バックアップするデータベースを指定します。指定しない場合、mongodump ではこのインスタンスのすべてのデータベースがダンプ ファイルにコピーされます。

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

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

バックアップするコレクションを指定します。コレクションを指定せずにこのオプションを選択すると、特定のデータベースまたはインスタンスに含まれるすべてのコレクションがダンプ ファイルにコピーされます。

--query=<json>, -q=<json>

の出力に含まれるドキュメントをオプションで制限するクエリとしてJSON ドキュメント mongodumpを入力します。--query オプションを使用するには、--collection <mongodump --collection> オプションも指定する必要があります。

shell 環境とやり取りしないように、クエリ ドキュメントを一重引用符('{ ... }')で囲む必要があります。

クエリは、フィールド名と演算子を引用符で囲むなど、 拡張JSON v2 形式( 緩和モード 、標準モード、厳密モードのいずれか)である必要があります。 (例: )。

mongodump -d=test -c=records -q='{ "a": { "$gte": 3 }, "date": { "$lt": { "$date": "2016-01-01T00:00:00.000Z" } } }'

$regexとmongodump を一緒に使用するには、次の構文を使用します。

mongodump -d=sample_mflix -c=movies -q='{ "year": { "$regex": "20" } }'

MongoDB 9.0 以降、パスの中間コンポーネントがスカラー値の配列である場合、サーバーはドット付きフィールドパスを null と異なって照合します。この変更は、 $eq、 $ne、 $in、 および $nin 演算子に影響します。

例えば、{ "a": [ 1 ] } ドキュメントを持つコレクションを考えます。パス a.b はそのドキュメントには存在しません。

  • MongoDB 8.x 以前では、述語 { "a.b": { "$ne": null } } がドキュメントと一致します。

  • MongoDB 9.0 以降では、同じ述語はドキュメントと一致しなく、代わりに述語 { "a.b": { "$eq": null } } が一致します。

クエリがこのような述語を使用する場合、同じ --query 値では、以前のバージョンとは異なり、MongoDB 9.0 では異なるドキュメントのセットが選択されます。{ "$ne": null } でフィルターする操作では、返されるドキュメントの数が減少します。MongoDB 9.0 配置からデータをダンプまたはエクスポートする前に、ドットパスと null を比較するクエリを検討してください。クエリが予想どおりのドキュメントを選択していることを確認します。

注意

--query時系列コレクションで オプションを使用する場合、metaField と指定されているフィールドのみをクエリできます。

--queryFile=<path>

mongodump の出力に含まれるドキュメントを制限するクエリフィルターとして、JSON document を含むファイルへのパスを指定します。--queryFile を使用すると、ターミナルのバッファに収まらないほど大きなクエリフィルターを作成できます。

注意

時系列コレクションで --queryFile オプションを使用する場合、metaField と指定されているフィールドのみをクエリできます。

--readPreference=<string|document>

デフォルト:primary

の読み込み設定 (read preference)を指定します。 mongodump--readPreferenceオプションには次の値を指定できます。

  • 読み込み設定 (read preference) モードのみを指定する場合の文字列

    --readPreference=secondary
  • モード、オプションの読み込み設定(read preference)タグセット、任意の maxStalenessSeconds を指定するために、次のとおり引用符で囲まれたドキュメント。

    --readPreference='{mode: "secondary", tagSets: [ { "region": "east" } ], maxStalenessSeconds: 120}'

    maxStalenessSeconds を指定する場合、値は90 以上である必要があります。

mongodump primary がデフォルトの読み込み設定(read preference)に指定されます。

--uri connection string <--uri> も読み込み設定(read preference)に含まれている場合、コマンドライン --readPreference によって URI文字列で指定された読み込み設定が上書きされます。

--gzip

出力を圧縮します。mongodump の出力先がダンプ ディレクトリである場合、この新機能によって個々のファイルが圧縮されます。圧縮ファイルの拡張子は .gz です。

mongodumpアーカイブ ファイルまたは標準出力ストリームに出力する場合、新しい機能により、アーカイブ ファイルまたはストリームに出力されるデータが圧縮されます。

--out=<path>, -o=<path>

mongodumpがダンプされるデータベース用にBSONファイルを書き込むディレクトリを指定します。デフォルトでは mongodump、dump は現在の 作業ディレクトリ内の という名前のディレクトリに出力ファイルを保存します。

データベース ダンプを標準出力に送信するには、パスの代わりに「-」を指定します。ダンプを圧縮するために gzip を使用するなど、出力を保存する前に処理する場合は、標準出力に書き込みます。標準出力の書き込み時に、mongodump でファイルに直接書き込みが行われる場合、<dbname>.metadata.json ファイルへの書き込みにメタデータは使用されません。

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

--archive=<file>

指定されたアーカイブ ファイルに出力を書き込み (write) ます。アーカイブ ファイルが指定されていない場合は、標準出力(stdout)に書き込みます。アーカイブ ファイルは、複数の BSON ファイルの代わりとなる 単一ファイルです。

  • アーカイブ ファイルにダンプを出力するには、--archive <mongodump --archive> オプションとアーカイブ ファイル名を指定して mongodump を実行します。

    mongodump --archive=<file>
  • 標準出力ストリームにダンプを出力して別のプロセスにつなげるには、--archive <mongodump --archive> オプションを指定(ただし、ファイル名は省略)して、mongodump を実行します。

    mongodump --archive

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

注意

mongodumpがアーカイブファイルに書き込む場合、mongodump のパフォーマンスが向上します。mongodump のパフォーマンスへの影響の詳細については、「 出力形式の考慮事項 」を参照してください。

--oplog

mongodumpは、 操作中に発生するすべてのoplogエントリをキャプチャするため、ダンプには特定の時点が反映されます。

mongodump がoplogデータを書き込む場所は、出力ターゲットによって異なります。

  • ディレクトリダンプの場合、mongodump はoplogエントリを出力ディレクトリの最上位にある oplog.bsonファイルに書込みます。

  • アーカイブ ダンプの場合、アーカイブにはoplogエントリが含まれます。

復元するときに、 を使用してoplogエントリを再生します。データが最新で、ダンプ中に発生したすべての書込みmongorestore --oplogReplay mongodump --oplogmongorestore --oplogReplay(write) が含まれるようにするには、 と を併用します。

--oplog を使用しない場合に、ダンプ操作中に書き込みが行われると、そのダンプには特定の時点が反映されません。更新プロセス中にデータベースに変更を加えると、バックアップの出力に影響する可能性があります。

書き込み (write) を受け入れながら個々のレプリカセットをバックアップするには、--oplog を使用します。

重要

--oplog を使って実行中の mongodump は、ダンプ処理中にリストされたいずれかの操作指示がクライアントから出されると、失敗します。

--oplog は、mongos インスタンスで mongodump を実行してシャーディングされたクラスターのコンテンツ全体をダンプしても効果はありません。

--oplog oplog を維持するノードに対してのみ機能します。これには、レプリカセットのすべてのノードが含まれます。

--oplog は oplog コレクションをダンプしません。

シャーディングされたクラスターでは、--oplog を使用して mongodump を実行することはできません。mongodump を使用してシャードクラスターをバックアップするには、「データベース ダンプを使用して自己管理型のシャーディングされたクラスターをバックアップする」を参照してください。

注意

mongodump--oplogmongodumpと--oplog を併用するには、レプリカセットメンバーの完全なダンプを作成する必要があります。次のオプションを使ってダンプされるデータを制限する場合には、 と は併用できません。

  • --db

  • --collection

  • --dumpDbUsersAndRoles

  • --query

警告

時系列コレクションを持つ配置で mongodump --oplog を実行している間は、MongoDB 8.x と MongoDB 9.0 の間で機能の互換性バージョン(FCV)を変更しないでください。結果のダンプは時系列形式の変換にまたがるため、mongorestore --oplogReplay では再生できません。

Database Tools 100.18.0 以降では、復元できないダンプが生成されるのではなく、mongodump が失敗します。詳細については、時系列形式変換における oplog のリプレイを参照してください。

mongodump --oplog と mongorestore --oplogReplay を組み合わせて使用し、書き込みを受け入れながらコンシステントなバックアップを作成する包括的な例については、一貫性のあるバックアップ ファイルの作成と復元 を参照してください。

--dumpDbUsersAndRoles

特定のデータベースで mongodump を実行時に、ユーザー定義とロール定義がデータベースのダンプ ディレクトリに追加されます。このオプションが適用されるのは、--db オプションでデータベースを指定した場合に限定されます。MongoDB では、特定データベースだけでなくインスタンス全体に mongodump が適用される場合は、常にユーザー定義とロール定義が追加されます。

--excludeCollection=<string>

mongodump 出力から指定コレクションを除外します。複数のコレクションを除外するには、--excludeCollection を複数回指定します。

--excludeCollectionオプションを使用するには、データベースを指定する必要があります。--db オプションまたは--uri 接続文字列でデータベースを指定できます。

--excludeCollectionsWithPrefix=<string>

mongodump 出力から指定プレフィックスを持つすべてのコレクションを除外します。複数のプレフィックスを指定するには、--excludeCollectionsWithPrefix を複数回指定します。

--excludeCollectionsWithPrefixオプションを使用するには、データベースを指定する必要があります。--db オプションまたは--uri 接続文字列でデータベースを指定できます。

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

デフォルト: 4

mongodump が並行してエクスポートするコレクション数。

--viewsAsCollections

このオプションを指定すると、mongodump ではビューがコレクションとしてエクスポートされます。

注意

ビューのみがエクスポートされます。mongodump のデフォルト設定では、ビューのメタデータのみがエクスポートされます。ビュー内のドキュメントをエクスポートするには、--viewsAsCollections オプションを使用します。

mongodump ではビューごとに、そのビューのドキュメントを含む BSON ファイルが作成されます。mongodump によって作成された BSON ファイルとともに mongorestore を使用すると、ビューはコレクションとして復元されます。

--viewsAsCollections を含めない場合、mongodump では各ビューのメタデータがキャプチャされます。mongorestore 操作にビューのメタデータ ファイルを含めると、ビューが再作成されます。

--compressors=<string>

mongodump が mongodump クライアントと MongoDB サーバー間のネットワーク通信に使用する圧縮アルゴリズムを指定します。--compressors オプションには、これらの値を 1 つ以上使用できます。

  • snappy

  • zlib

  • zstd

複数の圧縮アルゴリズムを指定した場合、mongodump はMongoDBデプロイでサポートされているリスト内の最初の 1 つを使用します。

コンプレッサーに関する詳細情報については、Go ドライバーのネットワーク圧縮に関するドキュメントをご覧ください。

mongodump の詳細については、以下を参照してください。

チュートリアルについては、「データベース ダンプを使用して自己管理型シャード クラスターをバックアップする」を参照してください。

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

このページを評価