表題の通り。MongoDBのデータを移行する。全データではなく特定のコレクションだけを対象にして行う。`mongodump`/`mongorestore`もあるが、今回は`mongoexport`/`mongoimport`で移行する。
■ 環境
- MongoDB 3.0.7
■ mongoexport
対象のMongoDBのホストに接続可能なマシン上で下記を実行する。
$ mongoexport --host [mongo_host] --db [db] --collection [collection] --out [output.json]
- host: db01
- db: master
- collection: shop
接続先のMongoDB、対象のDB/コレクションを上記とすると、下記のようなコマンドになる。ちなみに出力はJSON形式なので”[collection].json“としている。
$ mongoexport --host db01 --db master --collection shop --out shop.json
2015-11-24T19:09:50.215+0900 connected to: db01
2015-11-24T19:09:50.642+0900 exported 10408 records
$
■ mongoimport
`mongoexport`で出力したJSONファイルをインポートする。
$ mongoimport --host [mongo_host] --db [db] --collection [collection] --file [input.json]
- host: db02
- db: master
- collection: shop
上記とるすると、下記のようなコマンドとなる。
$ mongoimport --host db02 --db master --collection shop --file shop.json
2015-11-24T19:12:24.439+0900 connected to: tf0054_mongo
2015-11-24T19:12:24.801+0900 imported 10408 documents
$
データを確認する。
$ mongo --host db02 master
MongoDB shell version: 3.0.8
connecting to: db02:27017/master
>
> show collections
shop
system.indexes
>
> db.shop.count()
10408
>
以上。