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」ファイルは、デスクトップ上に保存されています。

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

-
MongoDBの_idフィールドを非表示にする方法
MongoDBの_idフィールドを非表示にする方法MongoDBでは、find()メソッドでドキュメントを検索すると、デフォルトで_idフィールド(ObjectId)が必ず結果に含まれます。しかし、射影(プロジェクション)という仕組みを使えば、この_idフィールドを非表示にし、必要なフィールドだけを取得することが可能です。本記事では、具体的な手順をサンプルコード付きで解説します。1. コレクションとドキュメントの作成まず、サンプル用のコレクションを作成し、ドキュメントを挿入します。> db.demo575.insertOne({id:101, Information:{Name:&quo
-
MongoDBでコレクション内のドキュメントの各フィールドを数式を使って更新する方法
コレクション内のドキュメントの各フィールドを数式(計算式)で一括更新したい場合は、MongoDBの update() メソッドに $mul 演算子と全位置演算子 $[] を組み合わせて使用します。本記事では、配列内のすべての要素に対して特定のフィールドの値を乗算で更新する具体的な手順を解説します。サンプルコレクションの作成まず、insertOne() メソッドを使って、ドキュメントを含むコレクションを作成します。> db.demo749.insertOne({details:[{id:1,a:10},{id:2,a:5},{id:3,a:20}]}); { acknowledge