mongoexport の例
項目一覧
このページでは 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 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-AWS
authentication mechanism
$external
authSource
に接続するには、この例に示すように、 と が使用されます。
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-AWS
authentication 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>