1. ホーム
  2. データベース
  3. モンゴルディーブ

一括バックアップ・リストア インポート・エクスポート MongoDBデータ方式

2022-01-19 12:26:09

前リンクポータル Mongoデータベースのインストールと設定

ナビキャット

データベース接続を確立する

データベースの新規作成

JavaScriptファイルのデータベースへの取り込み

mongodbのデータのバックアップとリストアは大きく分けて2種類あり、ライブラリにはmongodumpとmongore、ライブラリ内のテーブルにはmongoexportとmongoimportがあります。

mongodump バックアップ データベース

1. 一般的なコマンドのグリッド

mongodump -h IP --port port -u username -p password -d database -o path to file 


user whoがいない場合は、-uと-pを削除してください。
ローカルデータベースをエクスポートする場合は、-h を削除してください。
デフォルトのポートであれば、-portを削除してください。
すべてのデータベースをエクスポートする場合は、-dを削除してください。

2. 全データベースのエクスポート

[root@localhost mongodb]$ mongodump -h 127.0.0.1 -o /usr/local/Cellar/mongodb 
connected to: 127.0.0.1  
Tue Dec 3 06:15:55.448 all dbs  
Tue Dec 3 06:15:55.449 DATABASE: test to /usr/local/Cellar/mongodb/test  
Tue Dec 3 06:15:55.449 test.system.indexes to /home/zhangy/mongodb/test/system.indexes.bson  
Tue Dec 3 06:15:55.450 1 objects  
Tue Dec 3 06:15:55.450 test.posts to /usr/local/Cellar/mongodb/test/posts.bson  
Tue Dec 3 06:15:55.480 0 objects  


3. 指定したデータベースのエクスポート

[root@localhost mongodb]$ mongodump -h 192.168.1.108 -d tank -o /home/zhangy/mongodb/  
connected to: 192.168.1.108  
Tue Dec 3 06:11:41.618 DATABASE: tank to /usr/local/Cellar/mongodb/tank  
Tue Dec 3 06:11:41.623 tank.system.indexes to /usr/local/Cellar/mongodb/tank/system.indexes.bson  
Tue Dec 3 06:11:41.623 2 objects  
Tue Dec 3 06:11:41.623 tank.contact to /usr/local/Cellar/mongodb/tank/contact.bson  
Tue Dec 3 06:11:41.669 2 objects  
Tue Dec 3 06:11:41.670 Metadata for tank.contact to /usr/local/Cellar/mongodb/tank/contact.metadata.json  
Tue Dec 3 06:11:41.670 tank.users to /usr/local/Cellar/mongodb/tank/users.bson  
Tue Dec 3 06:11:41.685 2 objects  
Tue Dec 3 06:11:41.685 Metadata for tank.users to /usr/local/Cellar/mongodb/tank/users.metadata.json  


mongorestore データベース復元

1. 一般的なコマンドの書式

mongorestore -h IP --port port -u username -p password -d database --drop path to file


dropは、まずすべてのレコードを削除してからリストアすることを意味します。

2. 全てのデータベースをmongodbにリストアする。

[root@localhost mongodb]$ mongorestore /usr/local/Cellar/mongodb/ # The path here is the backup path for all the libraries  


3. 指定したデータベースのリストア

[root@localhost mongodb]$ mongorestore /usr/local/Cellar/mongodb/ # The path here is the backup path for all libraries  


この2つのコマンドは、jsonおよびbsonファイル形式でのデータベースのバックアップとリストアを可能にします。テーブルへの書き込みによるバックアップやリストアを参照することはできません。

mongoexport はテーブル、またはテーブル内の一部のフィールドをエクスポートします。

1. 一般的なコマンドの書式

mongoexport -h IP --port port -u username -p password -d database -c table name -f fields -q conditional export --csv -o filename  


を中心に、上記のパラメータをよく理解しています。

-f フィールドをフォントサイズで分割してエクスポート、-f name,email,age フィールドを名前、メール、年齢でエクスポート
-q はクエリでエクスポートでき、-q '{ "uid" : "100" }' は uid が 100 のデータをエクスポートします。
-ほとんどのリレーショナルデータベースはcsvをサポートしているので、これはより便利です。

2. テーブル全体のエクスポート

[root@localhost mongodb]$ mongoexport -d tank -c users -o /usr/local/Cellar/mongodb/tank/users.dat  
connected to: 127.0.0.1  
exported 4 records  


3. テーブルからいくつかのフィールドをエクスポートする

[root@localhost mongodb]$ mongoexport -d tank -c users --csv -f uid,name,sex -o tank/users.csv  
connected to: 127.0.0.1  
exported 4 records  


4. 条件に応じてデータをあえて

[root@localhost mongodb]$ mongoexport -d tank -c users -q '{uid:{$gt:1}}' -o tank/users.json  
connected to: 127.0.0.1  
exported 3 records  


mongoimport はテーブル、またはテーブル内のフィールドの一部をインポートします。

1. 一般的なコマンドの形式

1.1. エクスポートされた非svファイルのテーブル全体の復元

mongoimport -h IP --port port -u username -p password -d database -c table name --upsert --drop filename 


他のパラメータは上記のコマンドに記載されていますが、--upsert に注目すると、既存のデータを挿入または更新します。

1.2. 一部のフィールドについてエクスポートファイルを復元する

mongoimport -h IP --port port -u username -p password -d database -c table name --upsertFields fields --drop filename  


-のようなルートアップサートを行います。

1.3. エクスポートしたcsvファイルをリストアする

mongoimport -h IP --port port -u username -p password -d database -c table name --type type --headerline --upsert --drop filename  


上記の3つのケースには、他にも順列があります。

2. エクスポートしたテーブルデータを復元する

[root@localhost mongodb]$ mongoimport -d tank -c users --upsert tank/users.dat  
connected to: 127.0.0.1  
Tue Dec 3 08:26:52.852 imported 4 objects  


3. 一部フィールドのテーブルデータインポート

[root@localhost mongodb]$ mongoimport -d tank -c users --upsertFields uid,name,sex tank/users.dat  
connected to: 127.0.0.1  
Tue Dec 3 08:31:15.179 imported 4 objects  


4. csvファイルの復元

[root@localhost mongodb]$ mongoimport -d tank -c users --type csv --headerline --file tank/users.csv  
connected to: 127.0.0.1  
Tue Dec 3 08:37:21.961 imported 4 objects  


参考記事:https://www.jianshu.com/p/667fd4fd6ff7