MongoDBデータベースツールには、mongoexportというユーティリティが含まれています これにより、MongoDBデータをCSVまたはJSONファイルにエクスポートできます。
このユーティリティでできることの1つは、クエリ結果のエクスポートです。この記事では、mongoexportの使用方法を説明します MongoDBクエリ結果をJSONファイルにエクスポートします。
構文
mongoexportの構文 このようになります:
mongoexport --collection=<coll> <options> <connection-string>
mongoexportを実行する必要があります システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。
mongoexportを実行しないでください mongoからのコマンド シェル。
例
次のサンプルコードは、クエリの結果をJSONファイルにエクスポートします。
mongoexport --db=PetHotel --collection=pets --query='{ "type": "Dog" }' --out=data/dogs.json
これにより、petsというコレクションをクエリするクエリがエクスポートされます。 PetHotelで データベース。クエリはdogs.jsonというファイルにエクスポートされます data/内 フォルダ。
フォルダが存在しない場合は作成されます。ファイルと同じです。ちなみに、これは指定された場所へのファイルの書き込みに権限の問題がないことを前提としています。
この例では、ホスト、ポート、認証などを指定しなかったため、デフォルトのローカルホストポート番号27017で実行されているMongoDBインスタンスからコレクションをエクスポートします。 。
--typeを使用することもできます JSONを明示的に指定するパラメーター。デフォルトはJSONであるため、JSONにエクスポートする場合はオプションです。
--fieldsを含めることもできます エクスポートするフィールドを指定するパラメーター。デフォルトでは、JSONを使用するとすべてのフィールドがエクスポートされます。ただし、CSVにエクスポートする場合は、エクスポートするフィールドを指定する必要があります。
上記の例に次の2つのパラメータを追加した例を次に示します。
mongoexport --db=PetHotel --collection=pets --type=json --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.json 以下は、ここで提供したパラメーターの説明です。
| パラメータ | 説明 |
|---|---|
--db また -d | mongoexportを実行するデータベースを指定します 。この場合、データベースはPetHotelと呼ばれます。 。 または、このパラメーターを -dを使用して渡すこともできます。 (--dbの代わりに 。 |
--collection また -c | エクスポートする(またはクエリを実行する)コレクションを指定します。この場合、コレクションはpetsと呼ばれます 。 または、このパラメーターを -cとして渡すこともできます。 (--collectionの代わりに 。 |
--type | エクスポートされたファイルタイプを指定します。この場合、jsonを指定します JSONファイルにエクスポートします。 JSONがデフォルト値である場合、このパラメーターはJSONにエクスポートするときにオプションです。 |
--fields | エクスポートするフィールドを指定します。すべてのフィールドまたは一部のみをエクスポートするオプションがあります。 JSONにエクスポートする場合、フィールド名の指定はオプションです(CSVにエクスポートする場合の要件です)。 |
--query また -q | エクスポートする結果のクエリを指定します。これは一重引用符で囲む必要があります(シェルと相互作用しないようにするため)。 このパラメーターは、 -qを使用して渡すこともできます 。 |
--out | エクスポートされたファイル名とその場所を指定します。ファイル名を指定しない場合は、mongoexport データを標準出力(stdout)に書き込みます 。 |
エクスポートされたファイルを確認する
エクスポート操作が期待どおりに機能したことを確認しましょう。
まず、元のコレクションに対してクエリを実行しましょう。
use PetHotel
db.pets.find({ "type": "Dog" }) 結果:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 }
{ "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 }
{ "_id" : 6, "name" : "Fetch", "type" : "Dog", "weight" : 17 }
{ "_id" : 7, "name" : "Jake", "type" : "Dog", "weight" : 30 } したがって、4匹の犬がいて、すべてエクスポート操作で指定したのと同じフィールドを持っていることがわかります。
次に、エクスポートされたファイルdogs.jsonを開きます。 中身を確認するには:
{"_id":1.0,"name":"Wag","type":"Dog","weight":20.0}
{"_id":2.0,"name":"Bark","type":"Dog","weight":10.0}
{"_id":6.0,"name":"Fetch","type":"Dog","weight":17.0}
{"_id":7.0,"name":"Jake","type":"Dog","weight":30.0} すべてのデータは、期待どおりにエクスポートされたファイルにあります。
より少ないフィールドのエクスポート
--fieldsを使用して指定できるフィールド数を減らすことができます 必要に応じてパラメータ。
例:
mongoexport --db=PetHotel --collection=pets --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.json 結果のファイル:
{"_id":1.0,"name":"Wag","weight":20.0}
{"_id":2.0,"name":"Bark","weight":10.0}
{"_id":6.0,"name":"Fetch","weight":17.0}
{"_id":7.0,"name":"Jake","weight":30.0}
_idに気付くでしょう --fieldsに明示的に含めなかったにもかかわらず、フィールドはエクスポートされたファイルに含まれていました 口論。これは、_idが JSONにエクスポートする場合、フィールドは常に含まれます。明示的に含めない場合でも同様です。これは、CSVにエクスポートする場合には当てはまりません。
アクセス制御/認証
ローカルホストを使用していない場合は、--hostを使用できます ホストを指定するパラメーター、および--port ポートを指定します。 --usernameを使用することもできます ユーザー名と--passwordを指定するパラメーター パスワードはに。パスワードパラメータを省略すると、入力を求められます。 --authenticationDatabaseもあります ユーザーが作成された認証データベースを指定するためのパラメーター。
例:
mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --query='{ "type": "Dog" }' --out=data/dogs.json mongoexportを確認します
mongoexport MongoDBデータベースツールパッケージの一部です。 MongoDBデータベースツールは、MongoDBを操作するためのコマンドラインユーティリティのスイートです。
MongoDBデータベースツール/mongoexportを使用しているかどうかわからない場合 インストールされている場合は、ターミナルまたはコマンドプロンプトで次のコマンドを実行して確認してください。
mongoexport --version 持っている場合は、バージョン情報などが表示されます。持っていない場合は、MongoDB Webサイトにあるインストール手順を使用して、システムにインストールできます。
コマンドを実行する場所
mongoexportを実行する必要があることを忘れないでください システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。