このページではmongoexportの例を示します。
mongoexportシェルではなく、 システムコマンドラインからmongo を実行します。
CSV 形式でのエクスポート
オプションを使用してデータを CSV 形式でエクスポートする--fields
次の例では、mongoexport は、 データベース内のコレクションcontacts コレクションからusers CSV形式でファイル /opt/backups/contacts.csvにデータをエクスポートします。
mongodmongoexportが接続する インスタンスは、ローカルホストのポート番号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 形式でエクスポートするフィールドを指定する
CSV エクスポートの場合のみ、エクスポートするフィールドの行区切りリストを含むファイルでフィールドを指定することもできます。ファイルには 1 行につき 1 つのフィールドのみ含めることができます。
たとえば、ファイル fields.txt に name フィールドと address フィールドを指定できます。
name address
次に、 --fieldFileオプションを使用して、ファイルでエクスポートするフィールドを指定します。
mongoexport --db=users --collection=contacts --type=csv --fieldFile=fields.txt --out=/opt/backups/contacts.csv
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
JSON 形式でのエクスポート
この例では、ローカルホストのポート番号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 -)以上のフィールドを含む、 データベースの コレクション内のすべてのドキュメントを返します。 -"(日付の標準形式を使用){{"date":0101<offset>
mongoexport --db=sales --collection=contacts --query='{"dept": "ABC", date: { $gte: { "$date": "2018-01-01T00:00:00.000Z" } }}'
shell 環境とやり取りしないように、クエリ ドキュメントを一重引用符('{ ... }')で囲む必要があります。
AWS IAM 認証情報を使用して MongoDB Atlas クラスターに接続
バージョン100.1.0の新機能。
AWS IAM の認証情報 による認証をサポートするように構成済みのMongoDBconnection string Atlasクラスターに接続するには、次のような からmongoexport を提供します。
mongoexport 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' <other options>
この方法でAWS IAM 認証情報を使用して AtlasMONGODB-AWSauthentication mechanism $externalauthSourceに接続すると、この例に示すように、 と が使用されます。
AWSセッショントークンを使用する場合 同様に、AWS_SESSION_TOKENauthMechanismProperties 値を次のとおり指定します。
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 つのオプションにパーセント エンコーディングは必要ありません。
標準のAWS IAM 環境変数を使用してプラットフォーム上でこれらの認証情報を設定することもできます。mongoexport を使用すると、MONGODB-AWSauthentication mechanism は次の環境変数をチェックします。
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_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>