このページでは mongoexportの例を示します。
mongo shell ではなく、システム コマンドラインから mongoexport を実行します。
CSV 形式でのエクスポート
オプションを使用してデータを CSV 形式でエクスポートする--fields
次の例では、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 形式でエクスポートするフィールドを指定する
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 01-01 $date<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 の新機能。
Amazon Web Services IAM 認証情報 connection stringによる認証をサポートするように構成されたMongoDBmongoexport Atlasクラスターに接続するには、次のような から を提供します。
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に接続するには、この例に示すように、 と が使用されます。
Amazon Web Servicesセッション トークンを使用する場合 同様に、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 つのオプションにパーセント エンコーディングは必要ありません。
これらの認証情報は、標準のAmazon Web Services IAM 環境変数を使用してプラットフォーム上で設定することもできます。MONGODB-AWS authentication mechanism: を使用すると、mongoexport は次の環境変数をチェックします。
- 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>