MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのコレクションから指定したフィールドをファイルにエクスポートする方法(mongoexport活用)

MongoDBでフィールドをエクスポートするには?

MongoDBでは、データを外部ファイルへ書き出すための専用コマンドとして mongoexport が用意されています。mongodumpがBSON形式でバックアップを取得するのに対し、mongoexportはCSVやJSONといった扱いやすい形式でエクスポートできるのが特徴です。

mongoexportの基本構文

mongoexport -d データベース名 -c コレクション名 -f フィールド名 --type=csv -o 出力先パス/ファイル名;

各オプションの意味は以下の通りです。

  • -d:対象となるデータベース名を指定します
  • -c:対象となるコレクション名を指定します
  • -f:エクスポートしたいフィールド名(カンマ区切りで複数指定も可能)
  • --type=csv:出力形式をCSVに指定します(jsonも選択できます)
  • -o:出力先のファイルパスとファイル名を指定します

サンプルコレクションの作成

まずは動作確認のため、ドキュメントを含むコレクションを作成しましょう。以下では「demo284」というコレクションに「FirstName」フィールドを持つドキュメントを3件挿入しています。

> db.demo284.insertOne({"FirstName":"Chris"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e4abc9e9127fafea82a2cfc")
}
> db.demo284.insertOne({"FirstName":"Robert"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e4abca39127fafea82a2cfd")
}
> db.demo284.insertOne({"FirstName":"Bob"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e4abca79127fafea82a2cfe")
}

登録済みドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo284.find();

実行すると、以下のような結果が出力されます。

{ "_id" : ObjectId("5e4abc9e9127fafea82a2cfc"), "FirstName" : "Chris" }
{ "_id" : ObjectId("5e4abca39127fafea82a2cfd"), "FirstName" : "Robert" }
{ "_id" : ObjectId("5e4abca79127fafea82a2cfe"), "FirstName" : "Bob" }

指定フィールドをCSVファイルへエクスポートする

それでは実際に、「FirstName」フィールドだけをCSVファイルとして書き出してみましょう。ここではデスクトップ上の「C:\Users\Amit\Desktop\Result;」に出力しています。

C:\Program Files\MongoDB\Server\4.0\bin>mongoexport -d test -c demo284 -f FirstName --type=csv -o C:\Users\Amit\Desktop\Result;

コマンドを実行すると、次のようなログが表示されます。

2020-02-17T21:49:36.708+0530     connected to: localhost
2020-02-17T21:49:36.712+0530     exported 3 records

「exported 3 records」と表示されれば、3件のドキュメントが正常にエクスポートされたことを意味します。

エクスポート結果の確認

出力された「Result」ファイルは、デスクトップ上に保存されています。

MongoDBのコレクションから指定したフィールドをファイルにエクスポートする方法(mongoexport活用)

ファイルの中身を開くと、指定した「FirstName」フィールドの値だけがCSV形式で記録されていることが確認できます。

MongoDBのコレクションから指定したフィールドをファイルにエクスポートする方法(mongoexport活用)

  1. MongoDBの_idフィールドを非表示にする方法

    MongoDBの_idフィールドを非表示にする方法MongoDBでは、find()メソッドでドキュメントを検索すると、デフォルトで_idフィールド(ObjectId)が必ず結果に含まれます。しかし、射影(プロジェクション)という仕組みを使えば、この_idフィールドを非表示にし、必要なフィールドだけを取得することが可能です。本記事では、具体的な手順をサンプルコード付きで解説します。1. コレクションとドキュメントの作成まず、サンプル用のコレクションを作成し、ドキュメントを挿入します。> db.demo575.insertOne({id:101, Information:{Name:&quo

  2. MongoDBでコレクション内のドキュメントの各フィールドを数式を使って更新する方法

    コレクション内のドキュメントの各フィールドを数式(計算式)で一括更新したい場合は、MongoDBの update() メソッドに $mul 演算子と全位置演算子 $[] を組み合わせて使用します。本記事では、配列内のすべての要素に対して特定のフィールドの値を乗算で更新する具体的な手順を解説します。サンプルコレクションの作成まず、insertOne() メソッドを使って、ドキュメントを含むコレクションを作成します。> db.demo749.insertOne({details:[{id:1,a:10},{id:2,a:5},{id:3,a:20}]}); { acknowledge