こんにちは、汐留みずほです。
個人的に管理しているシステムで、MongoDBに触る機会があったので、書き残しておこうと思います。
MongoDBのデータ出力ツール
MongoDBのデータ出力ツールに、mongodumpとmongoexportとがあります。mongodumpはBSON形式というバイナリデータで出力し、インデックスなども含めたデータベースの情報を完全に含むためバックアップとして活用できます(リストアにはmongorestoreというツールを使用します)。mongoexportはCSVまたはJSONのテキストデータで出力します。データそのものをテキストとして扱ったり、他のツールとの連携用に使用するのに向いているようです(対となるツールとしてはmongoimportというものがあります)。
本記事ではmongodump/mongorestoreを使ったバックアップとリストアの手順、mongoexportを使ったエクスポートの手順について紹介します。
以下の前提で記載します。
- MongoDBのインストールされているホスト上で実行
- MongoDBのポート番号は変更していない
mongodumpでバックアップ/リストア
以下のコマンドでDBのバックアップが取得できます。
# mongodump --db DB Name
dumpというディレクトリが作成され、その中にbsonファイルとjsonファイルが生成されます。
# tree --charset=x dump
dump
`-- database
|-- attachments.bson
|-- attachments.metadata.json
|-- bookmarks.bson
|-- bookmarks.metadata.json
|-- comments.bson
|-- comments.metadata.json
|-- configs.bson
|-- configs.metadata.json
|-- pages.bson
|-- pages.metadata.json
|-- revisions.bson
|-- revisions.metadata.json
|-- updateposts.bson
|-- updateposts.metadata.json
|-- users.bson
`-- users.metadata.json
1 directory, 16 files
以下のコマンドでdumpからMongoDBへのリストアを実行します。
# mongorestore --db DB Name dump/DB Name
mongoexportでエクスポート
以下のコマンドでコレクションを指定したエクスポートを実行します。
JSON形式で出力
# mongoexport --db DB Name -c Collection Name --out output.json
CSV形式で出力
# mongoexport --db DB Name -c Collection Name --csv --out output.csv
まとめ
今回はオプションの細かい解説などは省きました。詳細は以下の公式ドキュメントを参考になさってください。
mongodump
mongorestore
mongoexport
mongoimport