sql >> データベース >  >> NoSQL >> MongoDB

MongoDBクエリ結果をCSVファイルにエクスポートする方法

    MongoDBデータベースツールには、mongoexportというユーティリティが含まれています これにより、MongoDBデータをCSVまたはJSONファイルにエクスポートできます。

    このユーティリティでできることの1つは、クエリ結果のエクスポートです。この記事では、mongoexportの使用方法を説明します MongoDBクエリ結果をCSVファイルにエクスポートします。

    構文

    mongoexportの構文 このようになります:

    mongoexport --collection=<coll> <options> <connection-string>

    mongoexportを実行する必要があります システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。

    mongoexportを実行しないでください mongoからのコマンド シェル。

    次のサンプルコードは、クエリの結果をCSVファイルにエクスポートします。

    mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv

    これにより、petsというコレクションをクエリするクエリがエクスポートされます。 PetHotelで データベース。クエリはdogs.csvというファイルにエクスポートされます data/内 フォルダ。

    フォルダが存在しない場合は作成されます。ファイルと同じです。ちなみに、これは指定された場所へのファイルの書き込みに権限の問題がないことを前提としています。

    この例では、ホスト、ポート、認証などを指定しなかったため、デフォルトのローカルホストポート番号27017で実行されているMongoDBインスタンスからコレクションをエクスポートします。 。

    以下は、ここで提供したパラメーターの説明です。

    パラメータ 説明
    --db
    また
    -d
    mongoexportを実行するデータベースを指定します 。この場合、データベースはPetHotelと呼ばれます。 。
    または、このパラメーターを-dを使用して渡すこともできます。 (--dbの代わりに 。
    --collection
    また
    -c
    エクスポートする(またはクエリを実行する)コレクションを指定します。この場合、コレクションはpetsと呼ばれます 。
    または、このパラメーターを-cとして渡すこともできます。 (--collectionの代わりに 。
    --type エクスポートされたファイルタイプを指定します。この場合、csvを指定します CSVファイルにエクスポートします。
    --fields エクスポートするフィールドを指定します。すべてのフィールドまたは一部のみをエクスポートするオプションがあります。ここにそれぞれをコンマで区切ってリストする必要があります。 CSVにエクスポートする場合、フィールド名を指定する必要があります。 --fieldsを介してこれを行うことができます パラメータまたは--fieldFile パラメータ(これについては後で詳しく説明します)。
    --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.csvを開きます。 中身を確認するには:

    _id,name,type,weight
    1,Wag,Dog,20
    2,Bark,Dog,10
    6,Fetch,Dog,17
    7,Jake,Dog,30

    OK、すべてのデータは期待どおりにエクスポートされたファイルにあります。

    より少ないフィールドのエクスポート

    --fieldsを使用して指定できるフィールド数を減らすことができます 必要に応じてパラメータ。

    例:

    mongoexport --db=PetHotel --collection=pets --type=csv --fields=name,weight --query='{ "type": "Dog" }' --out=data/dogs.csv

    結果のファイル:

    name,weight
    Wag,20
    Bark,10
    Fetch,17
    Jake,30

    列ヘッダーの削除

    前の例でエクスポートされたファイルに列ヘッダーが含まれていることがわかります。

    なしでファイルをエクスポートするオプションもあります 列ヘッダー。これを行うには、--noHeaderLineを使用します パラメータ。

    例:

    mongoexport --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --noHeaderLine --out=data/dogs.csv

    エクスポートしたファイルを開くと、列ヘッダーがありません:

    1,Wag,Dog,20
    2,Bark,Dog,10
    6,Fetch,Dog,17
    7,Jake,Dog,30

    フィールド名にファイルを使用する

    --fieldを置き換えることができます --fieldFileのパラメータ エクスポートするフィールド名を含むファイルの名前を指定するパラメーター。

    mongoexport --db=PetHotel --collection=pets --type=csv --fieldFile=data/dogs_fields.txt --query='{ "type": "Dog" }' --out=data/dogs.csv

    フィールドを含むファイルには、1行に1つずつフィールドがリストされている必要があります。

    dogs_fields.txtは次のとおりです。 この例のファイルは次のようになりました:

    name
    type
    weight

    これにより、エクスポートされたファイルの内容は次のようになりました。

    name,type,weight
    Wag,Dog,20
    Bark,Dog,10
    Fetch,Dog,17
    Jake,Dog,30

    列の順序の変更

    エクスポートするフィールドの順序を切り替えることができます。基になるドキュメントと同じ順序である必要はありません。

    たとえば、次のコード:

    mongoexport --db=PetHotel --collection=pets --type=csv --fields=type,name,weight,_id --query='{ "type": "Dog" }' --out=data/dogs.csv

    結果は次のCSVファイルになります:

    type,name,weight,_id
    Dog,Wag,20,1
    Dog,Bark,10,2
    Dog,Fetch,17,6
    Dog,Jake,30,7

    アクセス制御/認証

    ローカルホストを使用していない場合は、--hostを使用できます ホストを指定するパラメーター、および--port ポートを指定します。 --usernameを使用することもできます ユーザー名と--passwordを指定するパラメーター パスワードはに。パスワードパラメータを省略すると、入力を求められます。 --authenticationDatabaseもあります ユーザーが作成された認証データベースを指定するためのパラメーター。

    例:

    mongoexport --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin --db=PetHotel --collection=pets --type=csv --fields=_id,name,type,weight --query='{ "type": "Dog" }' --out=data/dogs.csv

    mongoexportを確認します

    mongoexport MongoDBデータベースツールパッケージの一部です。 MongoDBデータベースツールは、MongoDBを操作するためのコマンドラインユーティリティのスイートです。

    MongoDBデータベースツール/mongoexportを使用しているかどうかわからない場合 インストールされている場合は、ターミナルまたはコマンドプロンプトで次のコマンドを実行して確認してください。

    mongoexport --version

    持っている場合は、バージョン情報などが表示されます。持っていない場合は、MongoDB Webサイトにあるインストール手順を使用して、システムにインストールできます。

    コマンドを実行する場所

    mongoexportを実行する必要があることを忘れないでください システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。


    1. MongoDB-範囲クエリの並べ替えと制限時にインデックスが使用されない

    2. MongoDBStitchを使用してAndroid用のメモを取るアプリを作成する

    3. 流星生産サーバーからローカルまでのMongorestore

    4. Redisのインストール方法