MongoDB でコレクションを CSV 形式にエクスポートする

Tahseen Tauseef 2023年6月20日
  1. Studio 3T エクスポート ウィザードを使用して、コレクションを MongoDB の CSV 形式にエクスポートする
  2. MongoExport を使用してコレクションを MongoDB の CSV 形式にエクスポートする
MongoDB でコレクションを CSV 形式にエクスポートする

この記事では、MongoDB でコレクションを CSV 形式にエクスポートする方法について詳しく説明します。 コレクションを CSV 形式にエクスポートするには、Studio 3T と MongoExport の 2つの方法があります。

Studio 3T エクスポート ウィザードを使用して、コレクションを MongoDB の CSV 形式にエクスポートする

Studio 3T のエクスポート ウィザードを使用して、MongoDB コレクション、ビュー、クエリ、クエリ結果、または単一のドキュメントを CSV、JSON、BSON/mongodump、SQL、または別のコレクションにエクスポートできます。 この記事では、CSV 形式へのエクスポートについてのみ説明します。

エクスポート ウィザードを開く

MongoDB データベースに接続したら、グローバル ツールバーの [エクスポート] をクリックしてエクスポート ウィザードを開始します。

CSV へのエクスポート - エクスポート ウィザード 1

接続ツリー (コレクション、バケット、ビュー) で任意のサーバー、データベース、またはコレクションを右クリックして、[エクスポート] を選択することもできます。

CSV へのエクスポート - エクスポート ウィザード 2

または、結果タブ (コレクション タブ、SQL クエリ、IntelliShell) または入力パネルまたは出力パネルの集計エディターの任意の場所を右クリックし、[エクスポート] を選択します。

CSV へのエクスポート - エクスポート ウィザード 3

ソースのエクスポート

Studio 3T からいつでも次のファイルをエクスポートできます。

  1. コレクション全体
  2. 全景
  3. find() または集計クエリの現在のクエリ結果
  4. 現在のカーソル
  5. 特定の文書

CSV へのエクスポート - エクスポート ウィザード 4

すべてのエクスポートで、ツールバーから 6つのアクションのいずれかを選択できます。

  1. エクスポートをタスクとして保存します。 オンデマンドで実行することも、後で実行するようにスケジュールすることもできます。
  2. すぐにタスクを実行します。
  3. エクスポート ユニットを追加、編集、または削除できます。

CSV へのエクスポート - エクスポート ウィザード 5

エクスポート元を変更する

エクスポートを設定するときに、エクスポート ソース (接続、データベース、コレクションなど) を変更できます。 [ユニットのエクスポート] タブの [ソースのエクスポート] で、次のことができます。

  1. をクリックして、データベースまたは接続のリストからソースを変更します。
  2. ソースを接続ツリーからタブに直接ドラッグします。

CSV へのエクスポート - エクスポート ウィザード 6

find() クエリの結果をエクスポートする場合は、[ユニットのエクスポート] タブの [クエリ] バーで直接変更できます。 入力すると、クエリ バーが JSON を検証します。

CSV へのエクスポート - エクスポート ウィザード 7

エクスポート ファイルのパスを変更する

[エクスポートの概要] ページで、既定のターゲット フォルダーを設定することもできます。 Studio 3T は、このルートへの変更をすべて記憶します。

CSV へのエクスポート - エクスポート ウィザード 8

MongoDB コレクションを CSV 形式にエクスポートする

エクスポート ウィザードでエクスポート ソースを選択します。

この画面は、接続ツリーでアイテムを選択していない場合、前のクエリを実行していない場合、または特定のドキュメントを選択していない場合に表示されます。

CSV へのエクスポート - エクスポート ウィザード 9

次に、エクスポート形式として CSV を選択し、[次へ] をクリックします。

CSV へのエクスポート - エクスポート ウィザード 10

Studio 3T は 100 個のドキュメントの部分スキャンを実行して、コレクション内のフィールドを自動的に見つけます。 [フル スキャン] をクリックしてすべてのフィールドを特定するか (時間がかかる場合があります)、[カスタム フィールドの追加] をクリックして不足しているフィールドを手動で追加することができます。

CSV へのエクスポート - エクスポート ウィザード 11

[完了] ボタンをクリックして終了します。 これにより、Export Overview タブが起動し、デフォルトで Export Unit #1 – CSV タブになります。

[エクスポート ユニット - CSV] タブには 6つのセクションがあります。

  1. ソースのエクスポート – ソース接続、データベース、およびコレクションが表示されます。 青い点線のボックス内をクリックするか、接続ツリーからソースをタブに直接ドラッグして、これを編集できます。

  2. フィールドの選択 – カスタム フィールドを追加または削除し、エクスポートに含めるフィールドをオンまたはオフにします。

  3. ターゲットを選択 – クリップボードまたはファイルを選択し、必要に応じてファイル パスを定義します。

    CSV へのエクスポート - エクスポート ウィザード 12

  4. CSV 形式 – プリセット、区切り、レコード区切りなどの設定を構成します。

  5. その他のオプション – NULL 値や列ヘッダーの処理方法など、書式設定以外の設定を構成します。

  6. 出力プレビュー – CSV ファイルのプレビューを拡大するには、矢印ボタンをクリックします。

CSV へのエクスポート - エクスポート ウィザード 13

グローバル エクスポート オプションを構成するには、[エクスポートの概要] タブに移動します。

CSV へのエクスポート - エクスポート ウィザード 14

ツールバーでカスタマイズした後、[実行] をクリックしてエクスポートをすぐに開始できます。

CSV へのエクスポート - エクスポート ウィザード 15

追加のエクスポート ユニットを追加すると、一度に多数の CSV エクスポートを実行できます。 CSV エクスポートをタスクとして保存し、後で実行するようにスケジュールして時間を節約できます。

左下隅の [操作] ウィンドウをチェックして、エクスポートの進行状況を確認します。

このページからエクスポート ファイルを直接表示することもできます。 ファイル エクスプローラー (Windows、Linux) で [開く] ボタンを選択するか、同じウィンドウ (macOS) でエクスポートを右クリックして [Finder で表示] を選択します。

CSV へのエクスポート - エクスポート ウィザード 16

MongoExport を使用してコレクションを MongoDB の CSV 形式にエクスポートする

MongoExport を使用して、MongoDB コレクション、ビュー、クエリなどを CSV 形式にエクスポートすることもできます。

--fields オプションを使用してデータを CSV 形式にエクスポートする

MongoExport は、students データベースの data コレクションから次のセクションのファイル /opt/backups/data.csv にデータを CSV 形式でエクスポートします。

MongoExport が接続する mongod インスタンスは、localhost のポート 27017 でリッスンしています。

CSV 形式でエクスポートする場合、エクスポートするドキュメントのフィールドを決定する必要があります。 たとえば、エクスポートする name フィールドと address フィールドは操作で指定されます。

mongoexport --db=students --collection=data --type=csv --fields=name,address --out=/opt/backups/data.csv

出力:

name, address
Jack Reacher, 456 Example Road
Peter Parker, 123 Sample Street

ファイルを使用してフィールドを指定し、CSV 形式にエクスポートする

CSV エクスポート用にのみエクスポートするフィールドの行区切りリストを含むファイルにフィールドを指定することもできます。 ファイルでは、1 行につき 1つのフィールドのみが許可されます。

たとえば、fields.txt というファイルでは、フィールド nameaddress を指定できます。

name
address

次に、--fieldFile オプションを使用して、ファイルとともにエクスポートするフィールドを決定します。

mongoexport --db=students --collection=data --type=csv --fieldFile=fields.txt --out=/opt/backups/data.csv

CSV 出力からフィールド名を除外

--noHeaderLine オプションは、CSV エクスポートでフィールド名を除外できます。 次の例では、students データベースの data コレクションの name フィールドと address フィールドをエクスポートし、--noHeaderLine を使用して、フィールド名の最初の行への出力を抑制します。

mongoexport --db=students --collection=data --type=csv --fields=name,address --noHeaderLine --out=/opt/backups/data.csv

出力:

Jack Reacher, 456 Example Road
Peter Parker, 123 Sample Street

関連記事 - MongoDB CSV