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

mongoexport の例

項目一覧

  • CSV 形式でのエクスポート
  • JSON 形式でのエクスポート
  • 認証付きで実行されているリモート ホストからのエクスポート
  • クエリ結果をエクスポートする
  • AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
  • 詳細

このページでは mongoexportの例を示します。

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

次の例では、mongoexport は、users データベース内のコレクション contacts コレクションからCSV形式でファイル /opt/backups/contacts.csv にデータをエクスポートします。

mongoexportが接続するmongodインスタンスは、ローカルホストのポート番号27017で実行されています。

CSV 形式でエクスポートする場合は、エクスポートするドキュメント内のフィールドを指定する必要があります。この操作では、エクスポートする name フィールドと address フィールドを指定します。

mongoexport --db=users --collection=contacts --type=csv --fields=name,address --out=/opt/backups/contacts.csv

出力は次のようになります。

name, address
Sophie Monroe, 123 Example Road
Charles Yu, 345 Sample Street

CSV エクスポートの場合のみ、エクスポートするフィールドの行区切りリストを含むファイルでフィールドを指定することもできます。ファイルには 1 行につき 1 つのフィールドのみ含めることができます。

たとえば、ファイル fields.txtname フィールドと address フィールドを指定できます。

name
address

次に、 --fieldFileオプションを使用して、ファイルでエクスポートするフィールドを指定します。

mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv

--noHeaderLineオプションを使用すると、CSV エクスポートでフィールド名を除外できます。 次の例では、name addressデータベースのcontacts コレクション内の フィールドとusers --noHeaderLineフィールドをエクスポートし、 を使用してフィールド名の出力が最初の行に表示されないようにします。

mongoexport --db=users --collection=contacts --type=csv --fields=name,address --noHeaderLine --out=/opt/backups/contacts.csv

CSV 出力は次のようになります。

Sophie Monroe, 123 Example Road
Charles Yu, 345 Sample Street

この例では、ローカルホストのポート番号27017で実行されている MongoDB インスタンスからcontactsコレクションのエクスポートを作成します。 これにより、エクスポートがJSON形式でcontacts.jsonファイルに書き込まれます。

mongoexport --db=sales --collection=contacts --out=contacts.json

次の例では、認証を必要とするリモート MongoDB インスタンスから marketing データベース内の contacts コレクションをエクスポートします。

次のオプションを指定します。

Tip

--passwordオプションを省略すると、 mongoexportでパスワードの入力を求められます。

mongoexport --host=mongodb1.example.net --port=27017 --username=someUser --authenticationDatabase=admin --collection=contacts --db=marketing --out=mdb1-examplenet.json

または、ホスト、ポート、ユーザー名、認証データベース、db を指定するには、 --uriオプションを使用します。

Tip

mongoexport でパスワードの入力を求めるようにするには、URI文字列でパスワードを省略します。

mongoexport --uri='mongodb://someUser@mongodb0.example.com:27017/marketing?authsource=admin' --collection=contacts --out=mdb1-examplenet.json

--queryオプションを使用してクエリフィルターを指定することで、クエリの結果のみをエクスポートし、" --db " オプションを使用して結果を 1 つのデータベースに制限できます。

たとえばこのコマンドは、sales データベースのcontacts コレクション内のすべてのドキュメントを返します。これには、 という名前のフィールドがdept "ABC"に等しく、かつフィールドdate が ISODate("2018 01-01 $date<offset>

mongoexport --db=sales --collection=contacts --query='{"dept": "ABC", date: { $gte: { "$date": "2018-01-01T00:00:00.000Z" } }}'

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

バージョン 100.1.0 の新機能

Amazon Web ServicesIAM MongoDB Atlas認証情報 による認証をサポートするように構成済みの connection stringクラスターに接続するには、mongoexport は、次のように提供します

mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

AtlasAmazon Web Servicesこの方法で IAM 認証情報を使用してMONGODB-AWSauthentication mechanism $externalauthSourceに接続するには、この例に示すように、 と が使用されます。

AWS セッショントークンを使用する場合 同様に、AWS_SESSION_TOKEN authMechanismProperties 値を次のとおり指定します。

mongoexport '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>' <other options>

注意

AWS アクセスキー ID、シークレット アクセス キー、またはセッション トークンに次の文字が含まれている場合。

: / ? # [ ] @

上記文字はパーセント エンコーディングを使用して変換される必要があります。

あるいは、次のように、 、 、 --usernameオプションを使用して、Amazon Web Services IDstring--passwordアクセスキー--awsSessionToken 、シークレットアクセスキー、およびオプションのセッショントークンをそれぞれ接続 の外部で提供することもできます。

mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsSessionToken <aws session token> <other options>

コマンドライン パラメーターとして指定する場合、これら 3 つのオプションにパーセント エンコーディングは必要ありません。

標準のAmazon Web Services IAM 環境変数 を使用してプラットフォーム上でこれらの認証情報を設定することもできますmongoexportを使用すると、MONGODB-AWSauthentication mechanism は次の環境変数をチェックします。

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

設定されている場合、これらの認証情報を接続文字列や明示的なオプションで指定する必要はありません。

注意

Amazon Web Services の環境変数を使用してこれらの値を指定する場合、これらの認証情報に対応する明示的オプションまたは接続文字列 オプションと混在させることはできません。アクセス キー ID シークレット アクセス キー(および使用する場合はセッション トークンも)の環境変数を使用、または代わりに明示的オプションもしくは接続文字列 オプションをそれぞれを指定します。

次の例では、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 クラスターに接続します。

mongoexport 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>

戻る

動作