MongoDBのインポートとエクスポートの例
このチュートリアルでは、
mongoexport`と
mongoimport`コマンドを使ってMongoDBのバックアップと復元を行う方法を説明します。
1. mongoexportを使ったバックアップデータベース
`mongoexport`を使ってデータベースをバックアップする方法を示す例はほとんどありません。
よく使われるオプションのいくつかを見直してください。
$ mongoexport Export MongoDB data to CSV, TSV or JSON files. options: -h[--host]arg mongo host to connect to ( <set name>/s1,s2 for -u[--username]arg username -p[--password]arg password -d[--db]arg database to use -c[--collection]arg collection to use (some commands) -q[--query]arg query filter, as a JSON string -o[--out]arg output file; if not specified, stdout is used
1.1すべてのドキュメント(すべてのフィールド)を “domain-bk.json`ファイルにエクスポートします。
$ mongoexport -d webmitta -c domain -o domain-bk.json connected to: 127.0.0.1 exported 10951 records
1.2フィールド “domain”と “worth”のみを持つすべての文書をエクスポートします。
$ mongoexport -d webmitta -c domain -f "domain,worth" -o domain-bk.json connected to: 127.0.0.1 exported 10951 records
1.3検索クエリを含むすべてのドキュメントをエクスポートします。この場合、 “worth> 100000″のドキュメントのみがエクスポートされます。
$mongoexport -d webmitta -c domain -f "domain,worth" -q '{worth:{$gt:100000}}' -o domain-bk.json connected to: 127.0.0.1 exported 10903 records
1.4ユーザ名とパスワードを使用して、mongolab.comのようなリモートサーバに接続します。
$ mongoexport -h id.mongolab.com:47307 -d heroku__app -c domain -u username123 -p password123 -o domain-bk.json connected to: id.mongolab.com:47307 exported 10951 records
エクスポートされたファイルを確認します。
$ ls -lsa total 2144 0 drwxr-xr-x 5 mkyong staff 170 Apr 10 12:00 . 0 drwxr-xr-x+ 50 mkyong staff 1700 Apr 5 10:55 .. 2128 -rw-r--r-- 1 mkyong staff 1089198 Apr 10 12:15 domain-bk.json
2. mongoimportでデータベースを復元する
`mongoimport`を使ってデータベースを復元する方法を示す例はほとんどありません。
よく使われるオプションのいくつかを見直してください。
$ mongoimport connected to: 127.0.0.1 no collection specified! Import CSV, TSV or JSON data into MongoDB. options: -h[--host]arg mongo host to connect to ( <set name>/s1,s2 for sets) -u[--username]arg username -p[--password]arg password -d[--db]arg database to use -c[--collection]arg collection to use (some commands) -f[--fields]arg comma separated list of field names e.g. -f name,age --file arg file to import from; if not specified stdin is used --drop drop collection first --upsert insert or update objects that already exist
2.1ファイル “domain-bk.json”からすべての文書を “webmitta2.domain2″という名前のdatabase.collectionにインポートします。存在しないデータベースまたはコレクションはすべて自動的に作成されます。
$ mongoimport -d webmitta2 -c domain2 --file domain-bk.json connected to: 127.0.0.1 Wed Apr 10 13:26:12 imported 10903 objects
2.2すべてのドキュメントをインポートし、すでに存在するオブジェクトを挿入または更新します( `__id`に基づいて)。
$ mongoimport -d webmitta2 -c domain2 --file domain-bk.json --upsert connected to: 127.0.0.1 Wed Apr 10 13:26:12 imported 10903 objects
2.3ユーザ名とパスワードを使用してリモートサーバ-mongolab.comに接続し、ローカルファイル `domain-bk.json`からリモートMongoDBサーバにドキュメントをインポートします。
$ mongoimport -h id.mongolab.com:47307 -d heroku__app -c domain -u username123 -p password123 --file domain-bk.json connected to: id.mongolab.com:47307 Wed Apr 10 13:26:12 imported 10903 objects
参考文献
-
http://docs.mongodb.org/manual/core/import-export/
[MongoDB Official
Doc – MongoDBデータのインポートとエクスポート]
リンク://タグ/バックアップ/[バックアップ]リンク://タグ/エクスポート/[エクスポート]リンク://タグ/インポート/[インポート]リンク://タグ/mongodb/[mongodb]